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

37

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

我该怎么做呢?


1
可能是重复的问题:如何防止用户调整窗体大小? - Ryan Gates
6个回答

47
在主要的
(或任何不想被调整大小的)中,将属性更改为(,,,)。

谢谢。这个方法可行,比将最大值设置为最小值和其他hack方法更加可接受。 - Phil
1
FixedToolWindow特别适合作为“调色板”。 - Jeff Roe

5
另一种方法是通过属性定义表单大小,并将实际大小设置为MinimumSizeMaximumSize。这样可以避免改变BorderStyle,用户也无法更改表单的大小。

5
有效的解决方案。但是我不喜欢当Windows看起来可以调整大小,而我试图调整它们的大小时却没有任何反应。 - colithium

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

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

所以只需选择FixedSingle即可。并按照以下步骤操作:

a. 将最大化框属性设置为false。

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


3
尝试这个:
FormBorderStyle 更改为 Fixed(Single, 3D, Dialog)

1
它仍然可以通过拖动边缘来调整大小。 - colithium
在哪里?如何?什么是 FormBorderStyle?一个属性吗?你能让这个答案更具操作性吗?也许包括一些屏幕截图? - Peter Mortensen

0
你可以在XAML或者通过设计工具将窗口对象的ResizeMode属性更改为CanMinimizeNoResize

-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;
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接