Skąd mam wiedzieć, jaka jest aktualna szerokość paska przewijania systemu?

96

Jak wiesz, szerokość paska przewijania można dostosować w oknie Właściwości ekranu -> Wygląd -> Zaawansowane -> Element: ScrollBar. Wartość domyślna to 17. Jednak nie mogę założyć, że tak jest zawsze, czy mogę pobrać tę wartość?

Hao Wooi Lim
źródło

Odpowiedzi:

28

Szerokość pionowego paska przewijania

System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
Uwe Keim
źródło
9

Jeśli chcesz poznać rozmiar a ScrollableControlminus rozmiar paska przewijania, najłatwiej jest użyć Control.ClientSizewłaściwości.

Z dokumentacji :

Pobiera lub ustawia wysokość i szerokość obszaru klienckiego formantu. Obszar roboczy formantu to granice formantu bez elementów nieklienckich, takich jak paski przewijania , obramowania, paski tytułu i menu.

Paolo M.
źródło
3
Niestety ClientSize zawiera również szerokość paska przewijania (daje taką samą wartość jak ActualWidth). Nie ma to jednak sensu.
Oyvind
2

Pomiń właściwość ClientSize kontrolki. Przynajmniej w VS2013 Scrollbar jest zawarty w ClientSize.

Kiedy sformatowałem RichTextBox o szerokości 304 i pionowym pasku przewijania, szerokość Client Size wynosiła 300, co stanowiło tylko granice.

trzymaj się System.Windows.Forms.SystemInformation.VerticalScrollBarWidth, aby uzyskać szerokość paska przewijania.

user3892767
źródło