C# 从控件初始化容器
我有以下代码:C# 从控件初始化容器,c#,controls,containers,C#,Controls,Containers,我有以下代码: public class Configuration{ public Control container; public Configuration() { container = new Control(); } } 我想在配置构造函数中初始化控件的container,我想能够像这样向容器中添加组件: container.Container.Add(someCompo
public class Configuration{
public Control container;
public Configuration()
{
container = new Control();
}
}
我想在配置构造函数中初始化控件的container,我想能够像这样向容器中添加组件:
container.Container.Add(someComponente);
确保容器已经初始化
如何做到这一点?使用“延迟加载”技术
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());
使用加载的事件处理程序执行代码:
container.Loaded += (s, e) =>
{
// do something
};
本例使用的是匿名方法,但当然也可以使用常用的处理程序