Инстанцирование происходит конструктором, и оно отличается от OnLoad
, которое происходит, когда создается элемент управления.Вы не можете предотвратить создание экземпляров в OnLoad
, это слишком поздно, однако вы можете сделать это в конструкторе, вызвав исключение.
То, что вы можете сделать в OnLoad
, это предотвратить отображение элемента управления, установив его Visible
свойство false
, а также, если для вас важна утилизация элемента управления, вы можете удалить его из коллекции родительского элемента управления и затем утилизировать его:
Visible = false;
Parent.Controls.Remove(this);
Dispose();
Помните, что все ссылки наcontrol, затем будет указывать на удаленный объект, и IsDisposed
элемента управления будет истинным, и вызов его членов приведет к ObjectDisposedException
.Но ссылки на элемент управления не являются нулевыми.