Eingeschränktes vbModal gesucht

24/09/2008 - 13:21 von W. Wolf | Report spam
Hallo

habe eine MDI-Anwendung die ein oder mehrere Child-Fenster
anzeigt. Jedes dieser Childfenster kann einen modalen Dialog
anzeigen, dessen "modal" gilt dann für die ganze Anwendung.
Hàtte aber gerne, dass der Dialog nur das aufrufende
Elternfenster blockiert, die anderen Child-Fenster aber noch
zugànglich sind. Hat dafür jemand eine einfache Lösung?

Meine Denkansàtze scheinen mir zu kompliziert zu sein:

1. PictureBox in Childfenster und Dialoginhalt per API
SetParent in die PictureBox verfrachten und alle
Controlls des Elternfensters disabeln

2. Irgendwas mit SetWindowPos, Dialogfenster nur
über Elternfenster halten

Gruß
W. Wolf
 

Lesen sie die antworten

#1 Matthias Hübner
24/09/2008 - 13:45 | Warnen spam
Salut,

ich weiss nicht, ob das wirklich sinnvoll ist, was Du da machst. Modale
Fenster sind dazu da, den Benutzer dazu zu "zwingen" jetzt notwendige
Angaben zu machen, und nicht in irgendwelchen anderen Fenstern
rumzustieren.

W. Wolf wrote:

Hallo

habe eine MDI-Anwendung die ein oder mehrere Child-Fenster
anzeigt. Jedes dieser Childfenster kann einen modalen Dialog
anzeigen, dessen "modal" gilt dann für die ganze Anwendung.
Hàtte aber gerne, dass der Dialog nur das aufrufende
Elternfenster blockiert, die anderen Child-Fenster aber noch
zugànglich sind. Hat dafür jemand eine einfache Lösung?



Ich würde das folgendermaßen lösen:

Flagge im Parentfenster und Childfenster als Public Variable, und dann:

Set Child = Kindfenster
Set Child.Parent = Me
Child.Show vbModeless

Im Form_GotFocus() Eventhandler des Parent dann:

If Not Child Is Nothing then Child.SetFocus

Im Kinderformular im Form_Unload() Eventhandler:

Set Parent.child = Nothing

Meine Denkansàtze scheinen mir zu kompliziert zu sein:

1. PictureBox in Childfenster und Dialoginhalt per API
SetParent in die PictureBox verfrachten und alle
Controlls des Elternfensters disabeln

2. Irgendwas mit SetWindowPos, Dialogfenster nur
über Elternfenster halten

Gruß
W. Wolf



Grüße
Matthias

Ähnliche fragen