Zermelo
-
17 mars 2013 à 18:32
Zermelo
Messages postés378Date d'inscriptionsamedi 22 septembre 2012StatutMembreDernière intervention13 août 2017
-
2 août 2013 à 17:22
Bonjour à toutes et à tous.
Suite à la discussion "Largueur et hauteur sur écran" qui ne s'est pas terminée de façon bien nette, je vous délivre la procédure à laquelle je suis parvenu.
Public Function Emprise(ByVal Frm As Form) As Rectangle
Dim Rct As Rectangle, Brd As Integer
With Frm
If .FormBorderStyle.ToString.Contains("Fixed") Then
Brd = SystemInformation.SizingBorderWidth
Else
Brd = 0
End If
Rct.X = .Left - Brd
Rct.Y = .Top - Brd
Rct.Width = .Width + 2 * Brd
Rct.Height = .Height + 2 * Brd
End With
Return Rct
End Function
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 2 août 2013 à 16:54
Bonjour, AZermelo,
Je n'ai pas vu l'autre discussion dont tu parles, mais je ne comprends pas pourquoi tu n'utilises pas la propriété ClientRectangle.
Y a-t-il une raison que j'ignore (je ne suis pas vbnettiste) à cela ?
Zermelo
Messages postés378Date d'inscriptionsamedi 22 septembre 2012StatutMembreDernière intervention13 août 201714 2 août 2013 à 17:22
Bonjour ucfoutu.
Il y a effectivement un raison particulière. Le problème ne se pose pas en vb6. Il se pose en vb 2010 sur lequel je travaille, et probablement en vb net. Il se trouve qu'en vb 2010, et à ma grande fureur, la place occupée par un formulaire peut déborder du rectangle délimité par les cotes Left, Top, Width, et Height. Et pour faire bon poids, ce débord dépend de la propriété BorderStyle du formulaire.
Tralala.