Добавьте событие Load для Управления Winforms так же, как класс Формы

Всегда лучше определить столбцы, в которых Вы нуждаетесь, если Вы думаете об этом одно время, SQL не должен думать "wtf, *", каждый раз Вы запрашиваете. Вдобавок ко всему, кто-то позже может добавить столбцы к таблице, в которой Вы на самом деле не нуждаетесь в своем запросе, и Вы будете более обеспечены в этом случае путем определения всех столбцов.

5
задан deerchao 10 December 2009 в 01:52
поделиться

2 ответа

Form.Load событие вызывается методом OnLoad , который вызывается из метода OnCreateControl , который принадлежит элементу управления класс. Итак, для формы последовательность вызовов будет следующей:

OnCreateControl start
  OnLoad start
      Form Load event call
  OnLoad finish
OnCreateControl finish

Я думаю, вы можете переопределить OnCreateControl для своего компонента и добавить туда свой код оптимизации.

Надеюсь, это поможет, С уважением.

6
ответ дан 13 December 2019 в 19:28
поделиться

Для элемента управления можно переопределить либо OnControlCreated, либо OnHandleCreated. Последний может срабатывать несколько раз, если необходимо воссоздать окно управления. Обязательно используйте его, если ваш код влияет на само окно. Другими словами, если вы делаете что-либо, для чего требуется свойство Handle.

Несколько подходящих вариантов для элемента управления, производного от ToolStripItem. Я бы рекомендовал переопределить SetVisibleCore () или OnAvailableChanged () или событие AvailableChanged. Они запускаются при изменении свойства Visible ToolStripItem. Помните, что он может срабатывать несколько раз, сохраните поле типа bool, которое отслеживает, что ваш код инициализации уже был запущен.

И последнее, но не менее важное: делайте это только в том случае, если ваш код действительно требует создания элемента управления. Подавляющее большинство кода инициализации можно поместить в конструктор. Вам нужно только событие Load, если ваш код зависит от фактического местоположения и размера элемента управления. Что может отличаться от значения конструктора, если форма масштабируется из-за другого системного шрифта или настройки разрешения видео на целевом компьютере.

5
ответ дан 13 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: