Zum Inhalt springen

[VB.Net] Fenster aktiveren & Zweites Fenster inaktiv setzen


Fendres

Empfohlene Beiträge

Hallo alle miteinander,

Allein die Überschrift ist schon etwas undeutlich :( Ich weiß nicht einmal, welche Suchbegriffe ich für mein Problem bei Dr. Google oder in der SuFu eingeben soll...

Folgendes: Ich programmiere ein Programm, mit dem man verschiedene Datensätze anlegen kann. Diese Datensätze kriegen alle einen eindeutigen Namen, der mit einer eigens angelegten Form eingegeben wird. Wenn ich jetzt also auf meinen Menübutton "Neu" klicke, erscheint dieses Fenster und ich kann einen neuen Namen eingeben und somit einen neuen Datensatz anlegen.

Problem:Sobald diese Form erscheint, soll diese im Vordergrund stehen und das Hauptfenster, welches sich dahinter befindet soll nicht anklickbar sein, sprich, solange ich noch nicht in dieser Form auf Okay oder Abbrechen geklickt habe, soll nichts anderes möglich sein.

Ich habe bereit herausgefunden, dass man mit Form1.TopMost = True die Form in den Vordergrund und an vorderster Stelle setzen kann. Soweit so gut. Ich finde jedoch keine Möglichkeit, das Hauptfenster für die Zeit, in der die Form geöffnet ist, inaktiv zu setzen.

Deshalb meine Frage an euch: Wisst ihr, wie man das lösen könnte? (Ist bestimmt total simpel, aber ich komm nicht drauf :hells: )

Vielen Dank schonmal :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ganz einfach :)

benutze meinForm.ShowDialog() statt meinForm.Show().

Damit kannst du a) den Dialogresult prüfen (also, obs "normal beendet wurde, oder mit dem X oben rechts etwa, oder bei einer Speicherabfrage OK, Abbrechen oder sonstwas (von Dialogrestut-Objekten) gewählt wurde) und in Abhängigkeit davon Daten Änder, oder eben nicht (z.B.)

und hast "automatisch" deinen gewünchten Effekt, dass das Childform das Parentform "blockiert" (mouse Wait und ausgegraut, glaube ich). Jedoch kannst du so immer nur einen meinForm - Fenster geöffnet haben, aber ich glaube, genau dass willste ja.

Achso, ändere das "Form1.TopMost = True" wieder auf deafault (false), das nervt sonst, wenn keine ander Anwendung "drüber schweben" kann.

Wenn es dir nicht ganz klar geworden ist, oder du fragen hast, mache ich gerne n paar codeschnipsel.

Gruß, Kosi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Kleine Tipp:

Ich habe vorher etwas von Menü .. -> Neu gelesen. Wennst mal noch einen Schritt weitergehen willst schau dir mal

Formulareigenschaft: IsMDIContainer (für das Hauptfenster)

Dort kannst du dann Menüs einbauen und deine "Unter-" Forms in diesem MDIContainer aufrufen.

Mann kann die "Unter-" Forms mit MDIChildren abrufen, es gibt auch eine Funktion mit der man das MDI- Haupfenster aufrufen kann. MDIParent !


        Dim Formular As Form

        For Each Formular In Me.MdiChildren


        Next

Gruß Hans-Jörg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...