Frage

Ich habe eine Mdichild -Form, die einen Dialog anzeigen muss. Ich mache es gerade so aus der Mdichild -Form ...

f.ShowDialog(Me)

Soll ich benutzen f.ShowDialog(mdiparent)?

Was ist der Unterschied beim Einstellen des Eigentümers vor dem Anruf ShowDialog()?

War es hilfreich?

Lösung

Der Unterschied besteht darin, dass Eltern den Dialog besitzt. Wenn Sie das übergeordnete über explizit einstellen, besitzt dieses Fenster den Dialog. Wenn Sie es nicht festlegen (mit der parameterlosen Version von ShowDialog), besitzt das aktuelle aktive Fenster Ihrer Anwendung den Dialog. Das ist auf Msdn, übrigens.

Wo dies nützlich ist, ist das Zentrieren Ihres Dialogfelds durch Einstellen der Startposition -Eigenschaft mithilfe der FormStartPosition.Center -Parent -Aufzählung.

Andere Tipps

Ich bin mir nicht sicher, ob dies miteinander verbunden ist, aber ich hatte einige Probleme damit, die Besitzform in Showdialog zu bestehen. Normalerweise mache ich das:

f.Owner = Me
f.ShowDialog()

Es macht einen Unterschied ...

Ich habe ein MDI -Kind, das Showdialog (ME) und im resultierenden Dialogfenster auf den MDI -Container bezieht, nicht auf das MDI -Kind.

Mit Me.unner.activeControl ist eine Problemumgehung, aber mit:

       Dim ContractForm As New Contract(strType, intMode)
       ContractForm.Owner = Me
       dgrAction = ContractForm.ShowDialog()

Bekommt es schön. Im resultierenden Dialogfenster verweist ich jetzt auf das MDI -Kind.

Hoffe das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top