如何防止用户在C#应用程序中调整窗口大小?

时间:2010-09-20 11:05:04

标签: c# winforms

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

我该怎么做?

7 个答案:

答案 0 :(得分:42)

在主Form(或您不希望调整大小的任何Form)上,将FormBorderStyle属性更改为Fixed______FixedSingleFixed3DFixedDialogFixedToolWindow)。

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

有一些解决方法:

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

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

  3. 所以简单地选择FixedSingle。有意义的是,请执行以下操作:

    一个。将box属性设置为false。

    湾将SizeGripStyle设置为Hide。 (@colithium指出这一点)

答案 3 :(得分:1)

试试这个:

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

答案 4 :(得分:0)

如果您想使用默认的FormBorderStyle,并且仍然无法阻止用户重新调整表单大小,您只需设置表单的MaximumSizeMinimumSize属性即可如你所愿。

this.MaximumSize = new Size(XX,YY);
this.MinimumSize = new Size(X,Y);

答案 5 :(得分:0)

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

答案 6 :(得分:-2)

在旧版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;
  }
}