ดังที่คุณทราบเราสามารถปรับแต่งความกว้างของแถบเลื่อนในคุณสมบัติการแสดงผล -> ลักษณะที่ปรากฏ -> ขั้นสูง -> รายการ: ScrollBar ค่าดีฟอลต์คือ 17 อย่างไรก็ตามฉันไม่สามารถสันนิษฐานได้ว่าเป็นเช่นนี้เสมอไปฉันจะดึงค่านี้ได้หรือไม่?
ดังที่คุณทราบเราสามารถปรับแต่งความกว้างของแถบเลื่อนในคุณสมบัติการแสดงผล -> ลักษณะที่ปรากฏ -> ขั้นสูง -> รายการ: ScrollBar ค่าดีฟอลต์คือ 17 อย่างไรก็ตามฉันไม่สามารถสันนิษฐานได้ว่าเป็นเช่นนี้เสมอไปฉันจะดึงค่านี้ได้หรือไม่?
คำตอบ:
ดูSystem.Windows.Forms.SystemInformation
สมาชิกชั้นเรียน: HorizontalScrollBarHeight
และVerticalScrollBarWidth
.
ความกว้างของแถบเลื่อนแนวตั้ง
System.Windows.Forms.SystemInformation.VerticalScrollBarWidth;
หากคุณต้องการทราบขนาดของScrollableControl
ลบขนาดของแถบเลื่อนวิธีที่ง่ายที่สุดคือการใช้Control.ClientSize
คุณสมบัติ
จากเอกสารประกอบ :
รับหรือตั้งค่าความสูงและความกว้างของพื้นที่ไคลเอ็นต์ของคอนโทรล พื้นที่ไคลเอ็นต์ของตัวควบคุมคือขอบเขตของตัวควบคุมลบองค์ประกอบที่ไม่ใช่ไคลเอนต์เช่นแถบเลื่อนเส้นขอบแถบหัวเรื่องและเมนู
ข้ามคุณสมบัติ ClientSize ของตัวควบคุม อย่างน้อยใน VS2013 Scrollbar จะรวมอยู่ใน ClientSize
เมื่อฉันจัดรูปแบบ RichTextBox ด้วยความกว้าง 304 และแถบเลื่อนแนวตั้งความกว้างของ Client Size คือ 300 ซึ่งคิดเป็นเพียงเส้นขอบเท่านั้น
ติดกับ System.Windows.Forms.SystemInformation.VerticalScrollBarWidth เพื่อรับความกว้างแถบเลื่อนของคุณ