私はフォローしてみました、
form1では、
Dim removedtabs as New Collection()
そしてform2では、私は次のようにそれを参照しようとしました、
form1.ControlCollection(removedtabs)
しかし、それはエラーを与えます。
私はvb.netが初めてで、コントロールコレクションを使ったことがありません。
ありがとう
回答:
回答№1は0Formsは普通のクラスであり、クラスのメンバーは プライベート デフォルトで。少なくともキーワードを使う必要があるでしょう Public
の代わりに Dim
。しかし、もう少し深く掘り下げてみましょう。もう少し指摘しておく必要がある点がいくつかあります。
- Collectionオブジェクトを使用しました。正当な理由はありません これまで このオブジェクトを使用してください。主に古いコードとの後方互換性のために存在します。あなたは本当にジェネリックコレクション型の1つを代わりに使うべきです。
- 「デフォルトのフォーム1を使用しているようです」インスタンス。 Collectionクラスと同様に、これらのデフォルトインスタンスは主に下位互換性のために存在します。あなたは本当にあなた自身のフォームオブジェクトのインスタンスを作成し(フォームのコピーを1つしか持てないと言った人はいません)、それらのインスタンスへの参照を他のクラスに送信するべきです。
- オブジェクトを直接公開するのではなく、宣言を非公開にします。コレクションを返すためにgetセクションだけを持つプロパティを追加します。