Всегда лучше определить столбцы, в которых Вы нуждаетесь, если Вы думаете об этом одно время, SQL не должен думать "wtf, *", каждый раз Вы запрашиваете. Вдобавок ко всему, кто-то позже может добавить столбцы к таблице, в которой Вы на самом деле не нуждаетесь в своем запросе, и Вы будете более обеспечены в этом случае путем определения всех столбцов.
Form.Load
событие вызывается методом OnLoad
, который вызывается из метода OnCreateControl
, который принадлежит элементу управления
класс. Итак, для формы последовательность вызовов будет следующей:
OnCreateControl start
OnLoad start
Form Load event call
OnLoad finish
OnCreateControl finish
Я думаю, вы можете переопределить OnCreateControl
для своего компонента и добавить туда свой код оптимизации.
Надеюсь, это поможет, С уважением.
Для элемента управления можно переопределить либо OnControlCreated, либо OnHandleCreated. Последний может срабатывать несколько раз, если необходимо воссоздать окно управления. Обязательно используйте его, если ваш код влияет на само окно. Другими словами, если вы делаете что-либо, для чего требуется свойство Handle.
Несколько подходящих вариантов для элемента управления, производного от ToolStripItem. Я бы рекомендовал переопределить SetVisibleCore () или OnAvailableChanged () или событие AvailableChanged. Они запускаются при изменении свойства Visible ToolStripItem. Помните, что он может срабатывать несколько раз, сохраните поле типа bool, которое отслеживает, что ваш код инициализации уже был запущен.
И последнее, но не менее важное: делайте это только в том случае, если ваш код действительно требует создания элемента управления. Подавляющее большинство кода инициализации можно поместить в конструктор. Вам нужно только событие Load, если ваш код зависит от фактического местоположения и размера элемента управления. Что может отличаться от значения конструктора, если форма масштабируется из-за другого системного шрифта или настройки разрешения видео на целевом компьютере.