Инициализировать контейнер из Control - PullRequest
0 голосов
/ 18 июля 2011

У меня есть этот код:

    public class Configuration{

        public Control container;

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

        }
    }

и я хочу инициализировать в конструкторе конфигурации ограничитель контроля, я хочу добавить компоненты в контейнер следующим образом:

container.Container.Add(someComponente);

С гарантией того, что Контейнер уже инициализирован.

Как это сделать?

Ответы [ 2 ]

0 голосов
/ 19 июля 2011

Используйте обработчик события Loaded для выполнения вашего кода:

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

В этом примере используется анонимный метод, но, конечно, вы также можете использовать обычный обработчик.

0 голосов
/ 18 июля 2011

Используйте технику "отложенной загрузки".

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