【问题标题】:Winforms autoresizing a form with a status barWinforms 使用状态栏自动调整表单大小
【发布时间】:2012-08-30 03:39:41
【问题描述】:

我正在创建一个将 autosize 设置为 true 且 AutoSizeMode = GrowAndShrink 的 windows 窗体。

我在表单上粘贴了一个简单的控件并运行了程序。表单正确调整大小以仅显示一个控件。

然后我在表单底部添加了一个条带(我从 DevExpress Bar 开始,但为了只使用本机控件,我在下面粘贴了一个 statusStrip)。

我这次运行应用程序时,自动调整大小的窗体与没有状态栏的窗体大小完全相同,并且我添加的控件与状态栏重叠(我可以看到状态栏实际上仍然存在) )。

为什么会这样?这是故意的吗?我希望表单缩小会尊重表单底部的状态栏不应该重叠的事实。

【问题讨论】:

    标签: c# winforms c#-4.0


    【解决方案1】:

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

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

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

    【讨论】:

    • 我看到关闭dockStyle确实会让其他控件不重叠。不幸的是,表单将不再像我期望的那样缩小。
    • 如果您希望 StatusStrip 保持在底部,您现在必须自己定位。表单将相应调整大小。
    【解决方案2】:

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

    【讨论】:

    • 我看到关闭dockStyle确实会让其他控件不重叠。不幸的是,这不是一个真正的选择,因为表单将不再像我期望的那样缩小。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    相关资源
    最近更新 更多