2009-04-14 30 views
7

Khi Control được gắn vào một thùng chứa (như Panel) và quá rộng để hiển thị (do đó thanh cuộn xuất hiện), Control.Width dường như trả về chiều rộng có thể nhìn thấy của Điều khiển (mũi tên trên cùng trong hình).WinForms - Làm thế nào để bạn có được kích thước mà một Control "muốn"?

Làm thế nào để bạn có được chiều rộng mà Kiểm soát "muốn"? tức là chiều rộng đầy đủ mà bạn sẽ thấy nếu bạn không phải cuộn (mũi tên dưới cùng trong hình).

alt text http://img19.imageshack.us/img19/372/size.png

Trả lời

8

Có hai đặc tính khác nhau của các điều khiển mà bạn có thể thấy hữu ích cho mục đích này. Có DefaultSize là Kích thước của điều khiển khi nó được tạo ban đầu, và sau đó có PreferredSize là kích thước mà bộ điều khiển có thể vừa với để nói. Tất cả các điều khiển đều có các thuộc tính này và PreferredSize phải là thuộc tính bạn đang tìm kiếm.

8

Bounds là kích thước thực tế rút ra tại

ClientSize được kích thước trừ bất kỳ thanh cuộn

Control.PreferredSize là những gì bạn muốn

1

Control.HorizontalScrollbar.Maximum, hoặc Control.VerticalScrollbar.Maximum nên trở về kích thước tối đa yêu cầu. Nó có thể trở lại một số lượng hơi nhỏ vì nó có thể cắt giảm padding off.

Các vấn đề liên quan