0

リフレクターを使用してフレームワーク内のいくつかのクラスを見ると、フォームとユーザー コントロールが非公開になり、親クラスにネストされていることがわかります。

たとえば、そのコントロールに固有のポップアップ フォームを使用するコントロールがあります。現時点では、ポップアップ フォーム フレンドにアクセスできるようにしています。フレームワークの方法で実行したい場合は、それを非公開にして、コントロール クラスに入れ子にします。ただし、これを行うと、IDE を使用してフォームを設計できなくなり、コンパイルしようとするとエラーが発生します。だから、私は2つの質問があります:

(1) Microsoft は最後の最後に、すべてを非公開にするために何かを行いますか?

(2) 彼らの方法が好ましい方法ですか、それとも友人のアクセサーに固執する必要がありますか?

4

1 に答える 1

1

ネストされた形式は、適切なカプセル化を強制し、最終的なコントロールが配布用の 1 つの適切なパッケージになることを意味するため、より優れています。どちらも気にならない場合は、自分のやり方でやり続けてください。しかし、少なくともクラスのネストを試してみたい場合は、次のようにすることができます。

  1. デザイナーを使用して、通常どおり、ネストされたフォームをクラスの外に構築します。
  2. CLR の例と同様に、手順 1 で作成したフォームと同じ名前のプライベート ネストされたフォームとして2 つ目の空のフォームを追加します。
  3. *.designer.vb最初のフォームから、または最初のフォームのコードを *.designer.cs2 番目のフォームのコンストラクターに移行します。ほとんどの場合、大きなコピー/貼り付けになります。
  4. 手順 1 からフォームを削除します。フォームを別のクラス ライブラリ プロジェクトに移動して保持し、変更が必要なときに使用できるようにすることもできます。
于 2009-09-11T14:28:46.750 に答える