Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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 :)

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

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.