从Control初始化容器

时间:2011-07-18 17:31:22

标签: c# controls containers

我有这段代码:

    public class Configuration{

        public Control container;

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

        }
    }

我想在Configuration的构造函数中初始化控件的对手,我想能够像这样在容器中添加组件:

container.Container.Add(someComponente);

确保Container已经初始化。

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

使用“延迟加载”技术。

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());

答案 1 :(得分:0)

使用Loaded事件处理程序执行代码:

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

此示例使用的是匿名方法,但当然您也可以使用常用的处理程序。