Это возможно. Вы должны помешать классу Application сделать форму видимой. Вы не можете повозиться с приложением, которое заблокировано. Но это работает:
protected override void SetVisibleCore(bool value) {
if (!this.IsHandleCreated) {
this.CreateHandle();
value = false;
}
base.SetVisibleCore(value);
}
Это одноразовая отмена, ваш следующий вызов Show () или установка Visible = true сделает его видимым. Вам понадобится какой-то триггер, типичное контекстное меню NotifyIcon. Помните, что событие Load не будет запущено, пока оно не станет видимым. Все остальное работает как обычно, вызов метода Close () завершает программу.