Przypuszczam właściciel WinForm można ustawić bezpośrednio za pośrednictwem właściwości .Owner lub przepuszczanie właściciela w przeciążonej metody ShowDialog (właściciel IWin32Window)Różnica między właściwością .Owner i ShowDialog (właściciel IWin32Window)?
Jestem w stanie zrozumieć, dlaczego te metody wykazują różne zachowanie gdy jest Praca z formularzami MDI .
Utworzyłem MDIParent i MDIChild.
Posiadam również prosty MyDialogBox, który wyświetla właściciela podczas ładowania.
MessageBox.Show("Dialog's owner is " + this.Owner.Name);
Metoda A - W obciążeniu MDIChild Mam następujący kod, który powoduje właściciela MyDialogBox, który ma być ustawiony na MDIChild
MyDialogBox box = new MyDialogBox();
box.Owner = this; // Set owner as MDIChild
box.ShowDialog();
Metoda B - Alternatywnie, w sposobie obciążenia MDIChild mam następujący kod, który powoduje właściciela MyDialogBox, który ma być ustawiony na MDIParent
MyDialogBox box = new MyDialogBox();
box.ShowDialog(this); // Pass MyMDIChild as owner
ja również przeczytać następujący here
tylko forma dominująca MDI może posiadać inną formę, czy to dziecko MDI, modalne okno dialogowe lub formularz, w którym rodzic został ustawiony jako param Właściciel.
Jeśli tak, Metoda A nie powinna w ogóle działać, prawda?
Czego mi brakuje? Dlaczego metoda B nie ustawia właściciela na MDIChild?
Spróbuj zrobić to w VB6 i sprawdź, czy pasuje do podanego linku. Jeśli tak, to chyba - framework ma błąd. – shahkalpesh
Nie jestem pewien co do VB6, ale VB.NET zachowuje się tak samo jak C# – Preets