Was für Code in VB.net 2010 muss ich einstellen, um ein Fenster auf den Bildschirm zu kommen.
Was ich versuche zu erreichen, ist die Anzeige eines dringenden Alarmtyps, ein Formular, aus bestimmten Gründen benutze ich keine Nachrichtenbox.
Jemand hat den folgenden Code vorgeschlagen, aber das funktioniert nicht:
%Vor%Nimm nun den Namen des Fensters, das du nach vorne bringen willst, und mache folgendes:
%Vor%Dies bringt das Fenster an die Vorderseite des Bildschirms.
Fenster von vorne nach vorne bringen?
In MDI mit mehreren Formularen reicht form.BringToFront()
aus. Dadurch wird das Formular oben in Ihrer Anwendung verschoben.
Sie können auch die Methode form.ShowDialog()
verwenden, wenn Sie die Warnung / den Fehler anzeigen.
Auf Ihrem Desktop können Sie mehrere Anwendungen haben, gehen Sie besser die Anwendung als TopMost einstellen.
Wenn sich Ihre Anwendung hinter einem anderen Fenster befindet, ist die Warnmeldung möglicherweise nicht sichtbar.
Um application
in den Vordergrund zu bringen, benötigen Sie zusätzliche Arbeit, das sind "Erweiterungen" für die Klasse "form", also wird Folgendes verwendet: form.MakeTopMost()
:
Wie immer muss der Erweiterungscode in einem separaten Modul sein.
Meine Anforderung bestand darin, eine möglicherweise minimierte Anwendung zu öffnen und sie maximiert und aktiv zu machen. Nachdem ich das Netz ein wenig durchforstet habe, fand ich einen Teil der Antwort in einem C ++ Forum.
%Vor%Dies hat meine Anwendung in jedem Zustand (maxxed, mini'd, groß, klein, hinter Zeug) genommen. es brachte es nach vorne und maximierte es auf dem Bildschirm. deutete es auf dem Bildschirm auf, damit ich es sehen konnte!
Wenn nichts funktioniert, klicken Sie mit der rechten Maustaste und wählen Sie Nach vorne bringen. Wenn andere Bilder die Vorderseite abdecken, klicken Sie mit der rechten Maustaste auf die einzelnen Bilder und wählen Sie Nach Bedarf aus.
Ich benutze:
%Vor%und in der aufgerufenen Form:
%Vor%Der aufrufende Formularcode wartet auf das Ergebnis der aufgerufenen Formulare, bevor die Ausführung fortgesetzt wird.
Setzen Sie einfach die Eigenschaft Owner
des Formulars, das oben angezeigt werden soll:
Jetzt steht frmMessage
immer über frmMain
, unabhängig vom Fokus.
Wie ein anderer Benutzer geschrieben hat, ist eine meiner Lieblingsmethoden, den Formularbesitzer festzulegen. Auf diese Weise wird das untergeordnete Formular immer über dem übergeordneten Formular gesetzt, wenn eines der Formulare fokussiert, aktiviert usw. ist. Das Schöne daran ist, dass Sie keine speziellen Ereignisse abfangen und keinen speziellen Code ausführen müssen. Angenommen, Sie haben ein Hauptformular frmMain und ein Popup-Formular frmPopup, können Sie den folgenden Code verwenden, um sicherzustellen, dass das Popup immer über dem Hauptformular liegt, ohne das oberste zu verwenden (was zwar funktioniert, aber einige negative Auswirkungen hat).
%Vor%oder Sie könnten die längere Version verwenden (wie oben von jemandem
beschrieben) %Vor%Eine andere Sache, die großartig ist, ist, dass Sie sie auch mit ShowDialog ()
verwenden können %Vor%Ich weiß, dass dies ein alter Beitrag ist, aber vielleicht finden die Leute, die noch nach einfachen Lösungen suchen, das hier. Es hat wirklich dazu beigetragen, die Funktionalität meiner Programme mit viel weniger Code zu verbessern, als ich zuvor verwendet habe.
Ich weiß, das ist ein wenig alt, aber ich hatte heute ein ähnliches Problem. So habe ich es gelöst. Es funktioniert so lange, wie es Ihnen nichts ausmacht, das offene Formular zu schließen und ein neues Formular zu erstellen.
%Vor%Etwas abseits vom OP ... Ich habe ein "Dashboard", das ich aus einem Menü öffne. Der Benutzer kann zu anderen Fenstern wechseln und dann das Dashboard erneut "laden". Wenn es bereits geladen ist, wird es nach vorne gebracht.
Deklarieren Sie frmFISDash = frmFISDashboard "global"
%Vor%Beachten Sie die Einstellung von .WindowsState - wenn das Formular minimiert ist, funktioniert .bringToFront nicht.
Um zu nehmen, was Jim Nolan aufgrund seiner Beschreibung gesagt hat. Dies ist der beste Weg, um sicherzustellen, dass das Formular an vorderster Stelle aller anderen Formulare steht. Außerdem können Sie das Formular entsor- gen, das Eigentum des neuen Formulars zuweisen und das Formular
anzeigen %Vor%siehe folgendes Beispiel beim Laden von Formularen
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Wenn das, was Sie wollen, von bringen, nachdem der Winfom den Fokus verloren hat oder minimiert wurde. In meinem Fall, arbeite, wenn ich ein Winform auf eine Schaltfläche öffne.
%Vor%