WinForms - 你如何获得Control“想要”的大小?

时间:2009-04-14 16:10:41

标签: c# .net winforms

Control停靠在容器中时(如Panel)并且太宽而无法显示(因此会出现滚动条),Control.Width似乎返回可见宽度控件(图中的顶部箭头)。

如何获得Control“想要”的宽度?即,如果你不必滚动,你会看到它的全宽(图中的底部箭头)。

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

3 个答案:

答案 0 :(得分:9)

您可能会发现有两种不同的控件属性可用于此目的。 DefaultSize是最初创建时控件的大小,然后是PreferredSize,它是控件可以适应的大小。所有控件都具有这些属性,而PreferredSize应该是您正在寻找的属性。

答案 1 :(得分:8)

Bounds是在

处绘制的实际尺寸

ClientSize的大小减去任何滚动条

Control.PreferredSize就是你想要的

答案 2 :(得分:1)

Control.HorizontalScrollbar.MaximumControl.VerticalScrollbar.Maximum应返回所需的最大尺寸。它可能会返回一个小的数量,因为它可能会削减填充。