Самый простой способ сохранить форму невидимой - просто не показывать ее. Это большая проблема в Winforms, вызов Show () или установка свойства Visible в true (то же самое) делает lot вещей. Это способ создания собственного окна Windows. В типичном .NET «ленивый» способ. Любая попытка установить для Visible значение false (как в OnLoad) будет побеждена.
Технически это возможно, вы должны переопределить метод SetVisibleCore (). Как это:
protected override void SetVisibleCore(bool value) {
if (!this.IsHandleCreated) {
this.CreateHandle();
value = false; // Prevent window from becoming visible
}
base.SetVisibleCore(value);
}
Это гарантирует, что окно не станет видимым в первый раз, когда вы вызываете Show (). Что удобно, например, когда у вас есть NotifyIcon, вы обычно хотите, чтобы значок находился прямо в области уведомлений, и отображать окно, только когда пользователь нажимает на значок. Помните, что OnLoad () не запускается до тех пор, пока окно фактически не станет видимым, поэтому переместите код в конструктор или переопределите, если необходимо.