【问题标题】:How do I prevent a user from resizing a window in my C# application?如何防止用户在我的 C# 应用程序中调整窗口大小?
【发布时间】:2011-04-14 15:05:08
【问题描述】:

如何防止调整应用程序窗口的大小?

我该怎么做?

【问题讨论】:

标签: c# winforms


【解决方案1】:

在主要的Form(或您不想调整大小的任何Form)上,将FormBorderStyle 属性更改为Fixed______FixedSingleFixed3DFixedDialog、@ 987654328@).

【讨论】:

  • 谢谢。这比将最大值设置为最小值和其他技巧更有效并且更可口。
  • FixedToolWindow 尤其具有“调色板能力”。
【解决方案2】:

另一种方法是定义表单大小并通过属性将实际大小设置为MinimumSizeMaximumSize

这不会改变您的 BorderStyle 并且最终用户无法修改表单的大小。

【讨论】:

  • 有效解决方案。但我不喜欢 Windows 看起来可调整大小,然后我去调整它们的大小却没有任何反应。
【解决方案3】:

试试这个:

FormBorderStyle 更改为Fixed(Single, 3D, Dialog)

【讨论】:

  • 它仍然可以通过拖动边缘来调整大小。
  • 在哪里?如何? FormBorderStyle 是什么?财产?你能让这个答案更具操作性吗?也许包括一些屏幕截图?
【解决方案4】:

有一些解决方法:

  1. 将最大尺寸属性设置为您喜欢的值。如果您不希望应用程序窗口也缩小,请设置最小尺寸属性。如果您希望应用程序具有与设计时完全相同的大小,则将最大大小和最小大小都设置为窗口大小。 (一旦您从设计器中设置了最大尺寸或最小尺寸,您就无法通过编程方式调整窗口大小,除非您再次以编程方式重新设置最大尺寸和最小尺寸)

  2. 将 FormBorderStyle 设置为 FixedSingle 或 FixedDialog。对于未经训练的眼睛来说,外观上的差异不会很明显,但我从我的经验中发现的一个相当大的差异是,当您将其设为 FixedSingle 时,您仍然可以通过编程方式更改大小。使用 FixedDialog 是不可能的。这对于 FixedSingle 属性来说是一个巨大的优势。 (如果您想在使用 FixedDialog 后在此处以编程方式更改窗口大小,则必须先以编程方式更改 FormBorderStyle,这会在运行应用程序时产生轻微的闪烁效果。

所以只需选择 FixedSingle。为了有意义,请执行以下操作:

一个。将最大化框属性设置为 false。

b.将 SizeGripStyle 设置为隐藏。 (@colithium 指出这一点)

【讨论】:

    【解决方案5】:

    在旧版本的 Visual Studio(如 Visual Studio 2008)中查找这些属性存在问题,并且此处未显示 ResizeMode。

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
      if (e.CloseReason == CloseReason.UserClosing)
      {
        e.Cancel = true;
        this.WindowState = FormWindowState.Minimized;
      }
    }
    

    【讨论】:

      【解决方案6】:

      您可以在 xaml 中或通过设计器将 Window 对象的 ResizeMode 属性更改为 CanMinimizeNoResize

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-10
        • 2014-03-24
        • 1970-01-01
        • 2011-12-06
        • 2011-02-10
        • 1970-01-01
        • 1970-01-01
        • 2012-10-04
        相关资源
        最近更新 更多