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?

Était-ce utile?

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
scroll top