Benutzer mit den meisten Antworten
mdi -> Form ->dialog

Frage
-
Hallo Experten
ich habe eine MDI Form in der ich eine Form2 öffne. Aus Form2 kann eine weitere Form3 geöffnet werden. Auf Form2 soll erst wieder der Focus gesetzt werden können, wenn Form2 geschlossen wird! Das öffnen von Form2 als Dialog ist unbrauchbar, weil es A) außerhalb der MDI Form geöffnet wird und b) auch auf alle anderen Formen, welche in der MDIFrom geöffnet sind, den Zugriff unterbindet.
Gibt es eine Möglichkeit ?
mfg eem Monarch
- Bearbeitet Monarch-Falter Donnerstag, 29. März 2012 14:05
Antworten
-
Hallo,
aus Windows Standardsicht ist es nur so vorgesehen, dass ein modaler Dialog die gesamte Anwendung blockiert. Die Modalität soll ja eine gewisse Wichtigkeit unterstreichen - "Bearbeite erst diesen Dialog, bevor es hier weiter geht".
Als Workaround für das von Dir gewünschte Verhalten, kannst Du das aufrufende Formular deaktivieren, solange das "Dialogfenster" geöffnet ist:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Dim f As New Form1() AddHandler f.Shown, AddressOf DialogForm_Shown AddHandler f.FormClosed, AddressOf DialogForm_Closed f.MdiParent = Me.MdiParent f.Show() End Sub Private Sub DialogForm_Shown(ByVal sender As Object, ByVal e As EventArgs) Me.Enabled = False End Sub Private Sub DialogForm_Closed(ByVal sender As Object, ByVal e As EventArgs) Me.Enabled = True End Sub
Das stellt aber nicht das gesamte modale Verhalten eines mit ShowDialog angezeigten Formulars dar.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Monarch-Falter Donnerstag, 29. März 2012 19:07
Alle Antworten
-
Hallo,
aus Windows Standardsicht ist es nur so vorgesehen, dass ein modaler Dialog die gesamte Anwendung blockiert. Die Modalität soll ja eine gewisse Wichtigkeit unterstreichen - "Bearbeite erst diesen Dialog, bevor es hier weiter geht".
Als Workaround für das von Dir gewünschte Verhalten, kannst Du das aufrufende Formular deaktivieren, solange das "Dialogfenster" geöffnet ist:
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs _ ) Handles Button1.Click Dim f As New Form1() AddHandler f.Shown, AddressOf DialogForm_Shown AddHandler f.FormClosed, AddressOf DialogForm_Closed f.MdiParent = Me.MdiParent f.Show() End Sub Private Sub DialogForm_Shown(ByVal sender As Object, ByVal e As EventArgs) Me.Enabled = False End Sub Private Sub DialogForm_Closed(ByVal sender As Object, ByVal e As EventArgs) Me.Enabled = True End Sub
Das stellt aber nicht das gesamte modale Verhalten eines mit ShowDialog angezeigten Formulars dar.
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort markiert Monarch-Falter Donnerstag, 29. März 2012 19:07