Зазвичай ви робите це лише тоді, коли використовуєте піктограму лотка або інший спосіб для відображення форми пізніше, але це буде добре працювати, навіть якщо ви ніколи не відображаєте свою основну форму.
Створіть bool у своєму класі Form, якому за замовчуванням встановлено значення false:
private bool allowshowdisplay = false;
Потім перевизначте метод SetVisibleCore
protected override void SetVisibleCore(bool value)
{
base.SetVisibleCore(allowshowdisplay ? value : allowshowdisplay);
}
Оскільки Application.Run () встановлює форми .Visible = true після завантаження форми, це перехоплює це і встановлює значення false. У наведеному вище випадку він завжди встановлюватиме значення false, доки ви не ввімкнете його, встановивши allowhowdisplay на true.
Тепер, коли форма не відображатиметься під час запуску, тепер потрібно знову ввімкнути SetVisibleCore, щоб він працював належним чином, встановивши allowhowdisplay = true. Ви захочете зробити це на будь-якій функції інтерфейсу користувача, яка відображає форму. У моєму прикладі це подія лівого клацання в моєму об'єкті notiyicon:
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.allowshowdisplay = true;
this.Visible = !this.Visible;
}
}