2011-07-18 7 views
0

からコンテナを初期化します。は、私はこのコードを持っているコントロール

public class Configuration{ 

     public Control container; 

     public Configuration() 
     { 
      container = new Control(); 

     } 
    } 

を、私は設定のコンストラクタでコントロールのcontrainerを初期化したい、私はこのようなコンテナにcomponentesを追加できるようになりたい:

container.Container.Add(someComponente); 

コンテナが既に初期化されていることを保証します。

これを行う方法は?

答えて

0

「レイジーローディング」技術を使用します。

container.Loaded += (s, e) => 
{ 
    // do something 
}; 

この例では、匿名メソッドを使用しているが、もちろんあなたにも通常のハンドラを使用することができます。

public class Configuration { 
    private Control container; 
    public Control Container { 
     get { 
      var result = this.container; 
      if (null == result) { 
       this.container = result = new Container(); 
      } 
     } 
     set { this.container = value; } 
    } 
} 

// ... elsewhere ... 
var cfg = new Configuration(); 
cfg.Container.Controls.Add(new Button()); 
0

はあなたのコードを実行するLoadedイベントハンドラを使用してください。

関連する問題