Emprise à l'écran d'un formulaire

Résolu
Signaler
-
Messages postés
378
Date d'inscription
samedi 22 septembre 2012
Statut
Membre
Dernière intervention
13 août 2017
-
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


Cordialement.


Étant illettré, je signe d'une croix : ×

3 réponses

Messages postés
378
Date d'inscription
samedi 22 septembre 2012
Statut
Membre
Dernière intervention
13 août 2017
14
Je précise que l'emprise désigne l'ensemble des pixels affichés à l'écran par le formulaire Frm
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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 ?
Messages postés
378
Date d'inscription
samedi 22 septembre 2012
Statut
Membre
Dernière intervention
13 août 2017
14
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.

Avec mes amitiés.