【问题标题】:Display the minimize and maximize buttons on a sizable tool window?在相当大的工具窗口上显示最小化和最大化按钮?
【发布时间】:2010-01-03 14:48:19
【问题描述】:

我经常将 FormBorderStyle = SizableToolWindow 与较小分辨率显示器(即上网本)上的表单一起使用,以获得较小的标题栏高度和边框尺寸。

MaximizeBox 和 MinimizeBox 属性也设置为 True,但它们似乎被忽略了,因为只显示了关闭按钮。

我还尝试使用以下方法自定义窗口样式:

protected override CreateParams CreateParams
{
    get
    {

        CreateParams cp = base.CreateParams;



        cp.Style |= 0x00020000; // Turn on Minimize button

        cp.Style |= 0x00010000; // Turn on Maximize button

        return cp;
    }
}

但“最大化”和“最小化”按钮仍未显示。

相当大的工具窗口实际上默认显示在任务栏中,并且可以通过右键单击任务栏图标来最小化/最大化,但这远不如像往常一样在标题栏上显示按钮那么方便。

有什么建议吗?

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    Windows 根本不支持它,您不能强迫它这样做。 Fwiw,在上网本机器上强制窗口样式不是你的工作。用户通过控制面板显示 + 外观选项卡执行此操作。当用户自己可以轻松地这样做时,最好避免将您的个人偏好推送到您的 UI 上。并使其对所有应用程序保持一致。并保留最小/最大按钮。

    【讨论】:

    • 对不起,我不同意。我根本不会强迫一些奇怪的窗口样式。工具窗口是一种非常熟悉的样式(在许多应用程序中都可以看到),用于尝试减少窗口覆盖的屏幕“不动产”。我要问的是如何让用户最小化和最大化工具窗口而无需转到任务栏。顺便说一句,用户无法使用控制面板将工具窗口更改为普通窗口。它是应用程序控制的,而不是操作系统控制的。
    • 没想到你会这样。用户可以在显示小程序中更改普通窗口标题栏的高度。因此建议使用普通窗口而不是工具窗口。
    • 让我澄清一下。工具窗口 FormBorderStyle 专门设计用于不太显眼的窗口。在应用程序中同时使用普通窗口和工具窗口是完全有效和可接受的。显示没有最小/最大按钮的工具窗口通常会给用户带来不便和困惑,因此我不能对每个表单都这样做。但是,如果可以显示这些按钮,则没有理由不能(在应用程序内)为用户提供使用“较小窗口”的选项。
    【解决方案2】:

    没有实现自定义标题栏和非客户区,你做不到。正如 nobugz 所说,Windows 根本不支持这种样式组合。您可以在标准工具窗口标题栏顶部滚动您自己的最小/最大按钮,但我不建议这样做。

    【讨论】:

    • 我过去曾走这条路,如果它是内置的会很方便。我想我真的很想知道为什么 MinimizeBox / MaximizeBox 属性被忽略考虑到工具窗口可以被最大化/最小化。
    【解决方案3】:

    您可以让 FormBorderStyle 为 FixedDialog,然后将 MaximizeBox 设置为 False。这将使应用窗口左上角的最小化和关闭按钮保持活动状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 2012-12-16
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 2014-03-30
      • 2011-05-14
      相关资源
      最近更新 更多