Normalerweise tun Sie dies nur, wenn Sie ein Taskleistensymbol oder eine andere Methode verwenden, um das Formular später anzuzeigen. Dies funktioniert jedoch auch dann gut, wenn Sie Ihr Hauptformular nie anzeigen.
Erstellen Sie in Ihrer Formularklasse einen Bool, der standardmäßig auf false gesetzt ist:
private bool allowshowdisplay = false;
Überschreiben Sie dann die SetVisibleCore-Methode
protected override void SetVisibleCore(bool value)
{
base.SetVisibleCore(allowshowdisplay ? value : allowshowdisplay);
}
Da Application.Run () die Formulare festlegt .Visible = true, nachdem das Formular geladen wurde, wird dies abgefangen und auf false gesetzt. Im obigen Fall wird es immer auf false gesetzt, bis Sie es aktivieren, indem Sie allowhowdisplay auf true setzen.
Damit das Formular beim Start nicht mehr angezeigt wird, müssen Sie SetVisibleCore erneut aktivieren, damit es ordnungsgemäß funktioniert, indem Sie allowhowdisplay = true festlegen. Sie sollten dies für jede Benutzeroberflächenfunktion tun, die das Formular anzeigt. In meinem Beispiel ist es das Linksklick-Ereignis in meinem Notiyicon-Objekt:
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
this.allowshowdisplay = true;
this.Visible = !this.Visible;
}
}