WinForms Control - действие после полной инициализации - PullRequest
0 голосов
/ 30 апреля 2009

В элемент управления WinForms я хотел бы добавить обработчик после того, как контейнер инициализировал элемент управления (или даже лучше, после того, как родительский элемент инициализировал все содержащиеся элементы управления).

Причина: пользовательский элемент управления имеет возможность автоматически запускать действие. Он также должен срабатывать при первом включении этой опции.

Однако в этот момент другие свойства (например, обработчики событий) еще не подключены правильно, и, следовательно, эффект не такой, как ожидалось.

Возможно ли это?

[редактировать]

Я понимаю, что это звучит "немного необычно", поэтому я хочу уточнить:

Он предназначен для этого компонента : примерно, добавив опцию «автоматически создавать новый документ».

Я могу создать сам DocumentInfo во время инициализации или когда свойство назначается во время инициализации. Тем не менее, в этот момент я также должен запустить событие, чтобы сообщить (обычно родительская форма), что ему нужно обновить пользовательский интерфейс. Возможно, событие еще не было подключено или другие элементы управления по-прежнему не инициализированы, поэтому я хотел бы отложить событие до полной инициализации родительской формы.

Ответы [ 2 ]

3 голосов
/ 30 апреля 2009

Вы пробовали подключиться к событию Load формы и выполнить работу там? (обратите внимание, это срабатывает каждый раз, когда вы показываете форму ...)

2 голосов
/ 30 апреля 2009

Единственное, что я знаю об этом, - это сделать это непосредственно из элемента управления, чтобы переопределить OnVisibleChanged и обработать ваше действие при первом отображении элемента управления.

Однако я бы переосмыслил необходимость в этом. Это приведет к тому, что ваш элемент управления будет вести себя не так, как стандартные элементы управления Windows Forms. Попытка привязать ваше поведение к нестандартному событию для меня кажется кошмаром обслуживания и удобства ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...