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
};
本例使用的是匿名方法,但当然也可以使用常用的处理程序