Ausblenden von Formularen beim Start: Warum versteckt das nicht.Hide () mein Formular?

8

Ich wollte das Hauptfenster meiner App beim Start verstecken, also setze ich das in den Konstruktor:

%Vor%

Das verdeckt mein Formular jedoch nicht. Es scheint, als könnte ich nur Knöpfe bekommen, um das Formular zu verstecken. Mache ich hier etwas falsch?

    
Pieter 22.09.2010, 12:49
quelle

5 Antworten

20

Sie können diese Codezeile verwenden. Es wird es nicht verstecken, aber es wird minimiert:

%Vor%

Wenn Sie auch nicht möchten, dass es in der Taskleiste angezeigt wird, können Sie diese Zeile hinzufügen:

%Vor%

Aber warum erstellen Sie das Formular, wenn Sie nicht möchten, dass es überhaupt sichtbar ist?

    
Øyvind Bråthen 22.09.2010, 12:52
quelle
11

Überschreiben Sie einfach die OnVisibleChanged-Methode und ändern Sie die Sichtbarkeit des Formulars, etwa so:

%Vor%

Und das ist es! Einfach und sauber.

    
abraxas005 18.12.2011 01:39
quelle
3

Wenn Sie dies lieber verwenden möchten.Hide oder this.Show Sie können dies tun

%Vor%     
Geens 02.06.2015 20:53
quelle
0

Versuchen Sie, die Eigenschaft visible des Formulars auf false zu setzen, bevor sie in den Haupteingangspunkt Ihrer Anwendung geladen wird.

%Vor%

Oder versuchen Sie, die Koordinaten des Formulars auf einen höheren Standort wie 9000, 9000 zu setzen.

    
Sidharth Panwar 22.09.2010 12:51
quelle
0

Ich habe versucht, dies zu tun, indem ich Sichtbar auf falsch gesetzt habe oder im Konstruktor und im OnLoad-Ereignis versteckt habe.

Keine dieser Optionen hatte Auswirkungen, da das Formular nach dem Erstellen des Formulars und nach dem Auslösen des OnLoad-Ereignisses in SetVisibleCore auf Visible gesetzt wurde.

Das Formular, das im Shown Event ausgeblendet werden soll, funktioniert, aber das Formular flackert für einen Moment auf dem Bildschirm.

Sie können SetVisibleCore auch überschreiben und den Wert auf false setzen, aber OnLoad wird nicht ausgelöst, und einige der anderen Ereignisse werden durcheinander gebracht, z. B. das Schließen von Formularen.

Die beste Lösung ist meiner Meinung nach, dass das Formular minimiert und nicht in der Taskleiste angezeigt wird, bevor Application.Run () aufgerufen wird.

Also statt:

%Vor%

tun:

%Vor%

Dann wird die Anwendung mit allen richtigen Ereignissen ausgeführt (sogar OnShown) und das Formular wird nicht angezeigt.

Wenn Sie das Formular danach normal ausblenden / anzeigen möchten, müssen Sie den WindowState und ShowInTaskbar wieder auf Normal und true setzen.

Im Shown-Ereignis können Sie ShownInTaskbar wieder auf true setzen und dann das Formular ordnungsgemäß ausblenden.

%Vor%

...

%Vor%

Wenn Sie den WindowState auf Normal zurücksetzen, während das Formular ausgeblendet ist, hat dies keine Auswirkungen. Sie müssen dies also tun, nachdem Sie das Formular erneut angezeigt haben. Andernfalls wird das Symbol in der Taskleiste angezeigt, das Formular jedoch minimiert.

%Vor%     
Jack Culhane 11.06.2013 09:44
quelle

Tags und Links