Taille / emplacement de la zone client MDI Winforms
Question
À l'intérieur d'un formulaire MDI, vous trouverez une zone client hébergeant les formulaires enfants mdi. Comment savoir quelle est la taille de cette zone? Le mieux que je puisse faire jusqu'ici consiste à trouver la taille totale de la zone client potentielle du parent (mdiparent.ClientRectangle), puis à soustraire la taille des composants tels que les barres d'outils, etc. Y a-t-il un meilleur moyen?
La solution
Sur un formulaire, aucune propriété ne vous donne accès à la fenêtre du client MDI. Mais vous pouvez le retrouver comme ceci:
public MdiClient GetMdiClientWindow() {
foreach (Control ctl in this.Controls) {
if (ctl is MdiClient) return ctl as MdiClient;
}
return null;
}
À partir de là, utilisez simplement sa propriété Size.
Autres conseils
Voici une variante de ce code dans vb.net:
Public Function GetMdiClientWindowSize() As Size
For Each ctl As Control In Me.MdiParent.Controls
If TypeOf ctl Is MdiClient Then
Return ctl.Size
End If
Next
Return Nothing
End Function
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow