Woher kenne ich die aktuelle Breite der System-Bildlaufleiste?

96

Wie Sie wissen, können Sie die Breite der Bildlaufleistenbreite unter Anzeigeeigenschaften -> Darstellung -> Erweitert -> Element: Bildlaufleiste anpassen. Der Standardwert ist 17. Ich kann jedoch nicht davon ausgehen, dass dies immer der Fall ist. Kann ich diesen Wert abrufen?

Hao Wooi Lim
quelle

Antworten:

28

Breite der vertikalen Bildlaufleiste

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Uwe Keim
quelle
9

Wenn Sie die Größe von a ScrollableControlminus der Größe der Bildlaufleiste wissen möchten , ist es am einfachsten, die Control.ClientSizeEigenschaft zu verwenden.

Aus der Dokumentation :

Ruft die Höhe und Breite des Clientbereichs des Steuerelements ab oder legt diese fest. Der Client-Bereich eines Steuerelements sind die Grenzen des Steuerelements abzüglich der nicht-Client-Elemente wie Bildlaufleisten , Rahmen, Titelleisten und Menüs.

Paolo M.
quelle
3
Leider enthält ClientSize auch die Breite der Bildlaufleiste (ergibt den gleichen Wert wie ActualWidth). Macht aber keinen Sinn.
Oyvind
2

Überspringen Sie die ClientSize-Eigenschaft des Steuerelements. Zumindest in VS2013 ist die Bildlaufleiste in ClientSize enthalten.

Als ich eine RichTextBox mit einer Breite von 304 und einer vertikalen Bildlaufleiste formatierte, betrug die Breite der Clientgröße 300, was nur die Ränder berücksichtigte.

Halten Sie sich an System.Windows.Forms.SystemInformation.VerticalScrollBarWidth, um die Breite Ihrer Bildlaufleiste zu ermitteln.

user3892767
quelle