从控件初始化容器

本文关键字:初始化 控件 | 更新日期: 2023-09-27 18:02:21

我有这样的代码:

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

,我想在配置的构造函数中初始化控制容器,我想能够像这样添加组件到容器中:

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

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

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

这个例子使用了一个匿名方法,当然你也可以使用通常的处理程序