Элемент управления WinForms — действие после полной инициализации

StackOverflow https://stackoverflow.com/questions/807757

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

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

Это возможно?

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

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

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

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

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top