0

フォローしてみました、

form1で

Dim removedtabs as New Collection()

そしてform2で私はそれを次のように参照しようとしました、

form1.ControlCollection(removedtabs)

しかし、それはエラーを与えます。

私はvb.netを初めて使用し、コントロールコレクションを使用したことはありません。

ありがとう

4

1 に答える 1

0

フォームは単なる通常のクラスであり、クラスのメンバーはデフォルトでプライベートであることに注意してください。少なくとも、のPublic代わりにキーワードを使用する必要がありDimます。しかし、もう少し深く掘り下げましょう。指摘する必要のある追加のポイントがいくつかあります。

  • Collectionオブジェクトを使用しました。このオブジェクトを使用する正当な理由はありませんこれは主に、古いコードとの下位互換性のために存在します。代わりに、実際には汎用コレクションタイプの1つを使用する必要があります。
  • デフォルトのform1インスタンスを使用しているようです。Collectionクラスと同様に、これらのデフォルトインスタンスは、主に下位互換性のために存在します。実際には、フォームオブジェクトの独自のインスタンスを作成し(フォームのコピーを1つしか持てないとは誰も言わなかった)、それらのインスタンスへの参照を他のクラスに送信する必要があります。
  • オブジェクトを直接公開するのではなく、宣言を非公開にしてください。コレクションを返すgetセクションしかないプロパティを追加します。
于 2012-12-12T02:02:55.397 に答える