2012-08-29 66 views
2

我正在创建一个将窗体的autosize设置为true,并AutoSizeMode = GrowAndShrink。Winforms使用状态栏自动调整窗体的大小

我坚持一个简单的控制到窗体上并运行程序。表单正确调整大小只显示一个控件。

然后,我在表单底部添加了一个条(我用DevExpress Bar开始,但后来只是使用本机控件,我在那里插入了一个statusStrip)。

当运行该应用程序此时,自动调整大小的形式是完全相同的大小一样的一个没有在状态栏,并且我添加的重叠状态栏中的控制(I可以看到,状态栏是实际上仍然那里)。

为什么会出现这种情况?这是故意的吗?我期望表单缩小将尊重表单底部的状态栏不应该重叠的事实。

回答

2

当控件停靠等时,AutoSize不能很好地工作。关闭StatusStrip上的DockStyle以查看自动调整大小的工作。

请参阅Jared Par的AutoSize and DockStyle.Fill don't mix博客。

AutoSize和DockStyle.Fill不能很好地混合在一起。这两个属性都存在以描述相对于其他控件的大小关系,但它们以相互冲突的方式进行。

+0

我看到,关闭dockStyle确实会使其他控件不重叠。不幸的是,表单将不再缩小我期望的方式。 – user981225

+1

如果您希望StatusStrip停留在底部,您现在必须自己定位它。该表格将相应调整大小。 – LarsTech

2

我假设statusStrip设置为停靠。正因为如此,控件才会根据表单的大小自行停靠,而不是相反。

+0

我看到,关闭dockStyle确实会使其他控件不重叠。不幸的是,这不是一个真正的选择,因为表单将不再缩小我期望的方式。 – user981225

相关问题