0

C# でフォームを表示するときに、親 MDI フォームを指定しようとしています。

すべての例は、使用することを示唆しています

FormVariable.Parent = this;

常に親ウィンドウからフォームを開く必要があると仮定すると、これは問題なく機能します。

名前を指定して、フォームを開き、親フォームを MDI 親フォームに設定できるようにしたいと考えています。

VB.netで私が使用した

Me.MdiParent = TheNameOfMyParentForm

C#で似たようなことをしようとすると

this.MdiParent = CruxMDI();

私は得る

「Crux.CruxMDI」は「型」ですが、「変数」のように使用されます

4

1 に答える 1

1

Form.MdiParent具体的なインスタンスを参照する必要があります。そのため、必要な場所から参照できるように、Parent コンテナーに Singleton パターンを実装することをお勧めします (どちらにしても、複数の親ウィンドウを許可したくないでしょう?)。次に、次のように入力します。

this.MdiParent = CruxMDI.Instance;

このような動作を自動的に追加し、アプリケーションの多くのフォームで発生させる必要がある場合は、フォームから継承するカスタム基本クラスを作成するときにオプションを検討できます。そうすれば、これを一度指定すれば、デフォルトのフォームではなく、このベースクラスから新しいフォームを確実に継承する必要があります。

いずれにせよ、MDI コンテナーのインスタンスを参照するには、何らかのメカニズムが必要です。

于 2013-04-15T22:23:59.097 に答える