ฉันจะทราบความกว้างปัจจุบันของแถบเลื่อนระบบได้อย่างไร


97

ดังที่คุณทราบเราสามารถปรับแต่งความกว้างของแถบเลื่อนในคุณสมบัติการแสดงผล -> ลักษณะที่ปรากฏ -> ขั้นสูง -> รายการ: ScrollBar ค่าดีฟอลต์คือ 17 อย่างไรก็ตามฉันไม่สามารถสันนิษฐานได้ว่าเป็นเช่นนี้เสมอไปฉันจะดึงค่านี้ได้หรือไม่?

คำตอบ:




9

หากคุณต้องการทราบขนาดของScrollableControlลบขนาดของแถบเลื่อนวิธีที่ง่ายที่สุดคือการใช้Control.ClientSizeคุณสมบัติ

จากเอกสารประกอบ :

รับหรือตั้งค่าความสูงและความกว้างของพื้นที่ไคลเอ็นต์ของคอนโทรล พื้นที่ไคลเอ็นต์ของตัวควบคุมคือขอบเขตของตัวควบคุมลบองค์ประกอบที่ไม่ใช่ไคลเอนต์เช่นแถบเลื่อนเส้นขอบแถบหัวเรื่องและเมนู


3
ขออภัย ClientSize ยังมีความกว้างของแถบเลื่อน (ให้ค่าเดียวกับ ActualWidth) ไม่สมเหตุสมผลเลย
Oyvind

2

ข้ามคุณสมบัติ ClientSize ของตัวควบคุม อย่างน้อยใน VS2013 Scrollbar จะรวมอยู่ใน ClientSize

เมื่อฉันจัดรูปแบบ RichTextBox ด้วยความกว้าง 304 และแถบเลื่อนแนวตั้งความกว้างของ Client Size คือ 300 ซึ่งคิดเป็นเพียงเส้นขอบเท่านั้น

ติดกับ System.Windows.Forms.SystemInformation.VerticalScrollBarWidth เพื่อรับความกว้างแถบเลื่อนของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.