Einzelformular beim Start verstecken
Ich habe eine Anwendung mit einem Formular, in es, und auf die Load-Methode, die ich verstecken muss, die form.
Form zeigt sich, wenn es eine Notwendigkeit (denken entlang der Linien von einem outlook 2003-Stil-popup), aber ich kann' herausfinden, wie das ausblenden des Formulars auf den laden, ohne etwas chaotisch.
Irgendwelche Vorschläge?
InformationsquelleAutor der Frage Pondidum | 2008-09-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Komme ich an das von C#, sollte aber sehr ähnlich vb.net.
In Ihrem main-Programm-Datei, in der Main-Methode haben Sie so etwas wie:
Dies schafft eine neue form und die Grenzen der Lebensdauer der Anwendung, um die Lebensdauer der wichtigsten form.
Jedoch, wenn Sie entfernen Sie den parameter zur Anwendung.Run(), dann wird die Anwendung gestartet, keine form gezeigt, und Sie werden frei sein-und ausblenden Formen als viel wie Sie möchten.
Anstatt versteckt das Formular in der Load-Methode initialisieren Sie das Formular vor dem Aufruf von Application.Run(). Ich gehe davon aus, das Formular haben ein NotifyIcon auf es zeigt ein Symbol in der task-Leiste - dies kann auch dann angezeigt, wenn die form selbst ist noch nicht sichtbar. Aufruf
Form.Show()
oderForm.Hide()
vom Handler des NotifyIcon-Ereignisse ein-und ausblenden der form bzw..InformationsquelleAutor der Antwort Grokys
In der Regel werden Sie nur tun dies, wenn Sie mit einem tray-icon oder eine andere Methode zum anzeigen des Formulars später, aber es wird gut funktionieren, auch wenn Sie nie zeigen Sie Ihre wichtigste form.
Erstellen Sie ein boolescher Wert, der im Formular-Klasse, die standardmäßig auf false:
Überschreiben dann die SetVisibleCore Methode
Weil Anwendung.Die Run () - setzt den Formen .Visible = true, nach laden der form wird diese abzufangen, und setzen Sie ihn auf false. Im oben genannten Fall, es wird immer auf false gesetzt, bis Sie aktivieren es, indem Sie allowshowdisplay zu wahren.
Nun, dass die form von der Anzeige auf Start, jetzt müssen Sie erneut aktivieren die SetVisibleCore ordnungsgemäße Funktion ist durch die Einstellung der allowshowdisplay = true. Sie wollen, dies zu tun, auf was für user-interface-Funktion, die ein Formular angezeigt wird. In meinem Beispiel ist es die linke Maustaste Ereignis in meinem notiyicon Objekt:
InformationsquelleAutor der Antwort Paul Aicher
Benutze ich dieses:
Offensichtlich müssen Sie ändern die if-Bedingung mit Ihnen.
InformationsquelleAutor der Antwort Matías
InformationsquelleAutor der Antwort Chriz
In form Bauzeit (Designer, Programm-Haupt-oder Formular-Konstruktor abhängig von Ihren Zielen),
Wenn Sie brauchen, um die form, die vermutlich auf das Ereignis von Ihrem NotifyIcon, reverse notwendig,
Aufeinanderfolgenden ein - /ausblenden Ereignisse können mehr, verwenden Sie einfach das Formular Visible-Eigenschaft ein-und Ausblenden Methoden.
InformationsquelleAutor der Antwort Jeff
Erweitern Sie Ihre main-Formular mit diesem:
Beispiel:
Weitere Infos in diesem Artikel (Spanisch):
http://codelogik.net/2008/12/30/primer-form-oculto/
InformationsquelleAutor der Antwort
Ich habe gekämpft, mit diesem Thema viele und die Lösung ist viel einfacher, als ich dachte.
Zuerst habe ich versucht, alle Vorschläge hier, aber dann war ich mit dem Ergebnis nicht zufrieden und untersuchte es ein wenig mehr.
Ich fand, dass wenn ich hinzufügen:
Ist es gut arbeiten.
aber ich wollte eine eher einfache Lösung, und es stellt sich heraus, dass, wenn Sie hinzufügen:
InformationsquelleAutor der Antwort echoen
Versuchen, das ausblenden der app aus der Taskleiste, als auch.
Zu tun, verwenden Sie bitte diesen code.
Dank.
Ruhul
InformationsquelleAutor der Antwort Metallic Skeleton
Sind Sie gehen zu wollen, um das Fenster Status zu minimieren, und zeigen Sie in der Taskleiste auf false. Dann, am Ende Ihrer forms-Load-set Fenster-Status zu maximieren und zeigen in der Taskleiste zu wahren
InformationsquelleAutor der Antwort George
Im designer legen Sie das Formular Visible-Eigenschaft auf false. Dann vermeiden Sie den Aufruf Show (), bis Sie es brauchen.
Ein besseres Paradigma nicht erstellen Sie eine Instanz des Formulars, bis Sie es brauchen.
InformationsquelleAutor der Antwort deemer
Hier ist ein einfacher Ansatz:
Es ist in C# (ich weiß nicht VB-compiler im moment)
InformationsquelleAutor der Antwort aku
Starten einer app, ohne eine form bedeutet, dass Sie gehen zu müssen, verwalten Sie die Anwendung starten/Herunterfahren selbst.
Starten das Formular aus unsichtbar ist, ist eine bessere option.
InformationsquelleAutor der Antwort Roger Willcocks
Diesem Beispiel unterstützt insgesamt Unsichtbarkeit sowie nur NotifyIcon in der Taskleiste und keine Klicks, und vieles mehr.
Mehr hier: http://code.msdn.microsoft.com/TheNotifyIconExample
InformationsquelleAutor der Antwort
Als Ergänzung zu Groky Antwort (was ist eigentlich die beste Antwort, die von weit meiner Sicht) wir könnten auch erwähnen, die Datei ApplicationContext Klasse, das es auch erlaubt (so wie es im Artikel gezeigte Beispiel) die Fähigkeit zum öffnen von zwei (oder sogar mehr), die Formulare beim starten der Anwendung, und die Kontrolle der Lebensdauer der Anwendung, die mit allen von Ihnen.
InformationsquelleAutor der Antwort Eugenio Miró
InformationsquelleAutor der Antwort kilsek
Funktioniert dies perfekt für mich:
Wenn ich starte das Projekt, alles, was verborgen war, darunter in der Taskleiste, es sei denn, ich brauche, um es zu zeigen..
InformationsquelleAutor der Antwort Willy David Jr
Überschreiben OnVisibleChanged in Form
Können Sie Auslöser hinzufügen, wenn Sie brauchen, um es irgendwann
InformationsquelleAutor der Antwort LKane
Warum machen Sie es wie die überhaupt?
Warum nicht starten Sie einfach wie eine Konsole app und zeigen Sie die form, wenn notwendig? Es gibt nichts, aber ein paar Referenzen Trennung eine Konsolenanwendung aus einer forms-Anwendung.
Nicht nötig, gierig und unter den benötigten Speicherplatz für die form, wenn Sie möglicherweise gar nicht benötigen.
InformationsquelleAutor der Antwort Benjamin Autin
Basierend auf verschiedenen Vorschläge, alles, was ich zu tun hatte, war dies:
Ausblenden der form:
Zeigen die form:
InformationsquelleAutor der Antwort Jon Onstott
Mache ich es wie dieser - aus meiner Sicht die einfachste Möglichkeit:
legen Sie das Formular 'StartPosition' auf 'Manuell', und fügen Sie diese dem Formular-designer:
Stellen Sie sicher, dass der Standort etwas über oder unter dem Bildschirm Dimensionen. Später, wenn Sie wollen, um zu zeigen, die form, die Lage, etwas in die screen-Dimensionen.
InformationsquelleAutor der Antwort steve_k