2009-03-16 7 views
0

私は特定のポップアップ機能(MSNの画面の右下に小さなウィンドウと同様)が必要な不確定量のFormsがあるアプリケーションを作成しています。私は最初のフォームを書いた後、新しいファイルを作るためにファイルをコピーできると思った。ここまでは順調ですね。ちょっと後で私は、私のポップアップコードを書いてサブクラス化し、ポップアップコードを書き直すのを簡単にするために、新しいPopupFormクラスをサブクラス化して、他のフォームを作ることができることに気付きました。だから私はそれをしましたが、私のフォームはデザイナーで正しく表示されません!それらは完全に白です(背景画像やコントロールはありません)。新しいコントロールをドラッグすることはできません。私は私の新しいフォームにFormクラスからフォームのサブクラスのサブクラスが空になって表示されます

[Designer("System.Windows.Forms.Design.FormDocumentDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(IRootDesigner))] 
[DesignerCategory("Form")] 

属性を配置しようとしたが、それは助けにはなりませんでした。フォームの内容を変更する必要があり、何が間違っているのかわからないので、これは迷惑で混乱します。

答えて

2

コンストラクタが複数ある場合は、基本パラメータなしコンストラクタ、つまりInitializeComponentを含むコンストラクタを呼び出していることを確認してください。

class BaseForm 
    { 
     public BaseForm() 
     { 
      InitializeComponent(); 
     } 

     // not good -> does not call InitializeComponent() or :this() 
     public BaseForm(int someParameter) 
     { } 

     public BaseForm(string someParameter) 
      : this() // good -> calls InitializeComponent() 
     { } 

     public BaseForm(byte b) 
     { 
      // good -> InitializeComponent is called explicitly 
      // (but call to this() above is preferred) 
      InitializeComponent(); 
     } 
    } 

    class DerivedForm : BaseForm 
    { 
     public DerivedForm() 
      : base(5) // not good -> calls the "bad" base constructor 
     { } 

     // good -> base() constructor is implicitly called 
     public DerivedForm(double x) 
     { } 

     public DerivedForm(string someParam) 
      : base(someParam) // good -> BaseForm(string) will call InitializeComponent 
     { } 
    } 
+0

これは自動的に発生します。派生クラスのインスタンスをインスタンス化すると、ベースに別のコンストラクターを指定しない限り、基本パラメーターなしコンストラクターも呼び出されます。 – BFree

+0

@BFreeはい、それも私が信じていることです。それは他のものでなければならない。 – Bevin

関連する問題