Unterschied zwischen .Owner-Eigenschaft und ShowDialog(IWin32Window owner)?

Vermute ich eine winform-Besitzer können explizit festgelegt werden, über die .Besitzer Eigenschaft ODER indem der Besitzer in der überladenen Methode ShowDialog(IWin32Window owner)

Ich bin nicht in der Lage zu verstehen, warum diese Methoden weisen unterschiedliche Verhalten bei der Arbeit mit MDI-Formulare.

Ich erstellt habe, ein MDIParent und ein MDIChild.

Ich habe auch eine einfache Windows forms-MyDialogBox zeigt, dass seine Besitzer auf laden.

MessageBox.Show("Dialog's owner is " + this.Owner.Name);

Methode, Einen In der Belastung des MDIChild ich habe folgenden code, der bewirkt, dass die MyDialogBox der Besitzer gesetzt werden MDIChild

MyDialogBox box = new MyDialogBox();
box.Owner = this; //Set owner as MDIChild
box.ShowDialog();

Methode B - Alternativ in der load-Methode des MDIChild ich habe folgenden code, der bewirkt, dass die MyDialogBox der Besitzer gesetzt werden MDIParent

MyDialogBox box = new MyDialogBox();
box.ShowDialog(this); //Pass MyMDIChild as owner

Ich auch Lesen Sie die folgenden hier

Nur das übergeordnete MDI-Formular kann der Eigentümer einer anderen form ein MDI Kind, eines modalen Dialogfelds oder eines Formulars, wo die Eltern wurde eingestellt, als der Besitzer param.

Wenn so Eine Methode sollte überhaupt nicht funktionieren, ist es nicht ?

Was bin ich? Warum nicht Methode B den Besitzer zu MDIChild ?

  • Versuchen Sie, dies zu tun in VB6 & sehen, ob es passt mit dem link, den Sie zur Verfügung gestellt. Wenn es das tut, denke ich - framework hat einen Fehler.
  • Nicht sicher über VB6 aber VB.NET scheint die gleiche Weise Verhalten wie C#
InformationsquelleAutor Preets | 2008-12-27
Schreibe einen Kommentar