禁用Windows Forms窗体的调整大小功能

274

如何禁止用户调整 Windows Forms 窗体的大小?

我希望在点击时,窗体自动调整大小。


53
将FormBorderStyle属性设置为FixedSingle。 - Hans Passant
2
可能是重复的问题:如何防止用户调整窗体大小?(https://dev59.com/b3NA5IYBdhLWcg3wBpHs) - Ryan Gates
可能是重复的问题:如何防止用户调整窗口/表单大小? - bluish
7个回答

453

请查看FormBorderStyle属性

form1.FormBorderStyle = FormBorderStyle.FixedSingle;

您可能还希望移除最小化和最大化按钮:

form1.MaximizeBox = false;
form1.MinimizeBox = false;

1
请注意,将 MaximizeBox 设置为 false 是必要的,以防止用户通过 Windows键 + 上箭头 最大化窗口。将 ControlBox 设置为 false 是不够的。 - David Sherret

88
  1. 首先,选择表单。
  2. 然后,进入属性菜单。
  3. 将属性"FormBorderStyle"从sizable更改为Fixed3D或FixedSingle。

    这是修改属性“FormBorderStyle”的位置。


2
完美...我将FormBorderStyle属性设置为“FixedSingle”或“Fixed3D”,现在非常完美。用户无法再调整窗体大小了。 - Adam Tremblay Lavoie
这个代码可以阻止用户调整屏幕大小。然而,被认可的答案却会阻止用户使用全屏和最小化按钮。 - programmerRaj

20

更准确地说,将下面的代码添加到Form类的private void InitializeComponent()方法中:

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;

4

解释

默认情况下,FormBorderStyle 属性被赋予了值为 FormBorderStyle.Sizablesizable,使得窗体可以被调整大小。

有7种可用的 FormBorderStyle 属性值。

  • None(无)
  • FixedSingle(固定边框)
  • Fixed3D(固定3D边框)
  • FixedDialog(固定对话框)
  • Sizable(可调整大小)
  • FixedToolWindow(固定工具窗口)
  • SizableToolWindow(可调整大小的工具窗口)

根据窗体的类型,我们可以相应地分配适当的值。假设您的窗体名称为 form1

从以下任何一种选择,将其设置为 Fixed(固定)

FixedSingle、Fixed3D、FixedDialog 使窗体 不可调整大小,分配无(None) 也可以,但如果没有控制框的话就没有意义。

代码

下面是代码片段,请使用其中任何一个

FixedSingle

    form1.FormBorderStyle = FormBorderStyle.FixedSingle;

Fixed3D
固定的三维效果。
    form1.FormBorderStyle = FormBorderStyle.Fixed3D;

FixedDialog

    form1.FormBorderStyle = FormBorderStyle.FixedDialog;

None [可选] 注意:没有控制框

    form1.FormBorderStyle = FormBorderStyle.None;

或者,图形化呈现

我们可以用图形方式来应用它。

确保您已选择要制作固定大小的表单。然后您会在属性窗口中看到一个名为FormBorderStyle的属性。

Visual Studio IDE的图形属性窗口


1

有一种更加高效的方法:只需将以下指令放在 Form_Load 中:

this.MinimumSize = new Size(Width, Height);
this.MaximumSize = this.MinimumSize;

OP要求C#,而你提供了Visual Basic的解决方案。 - i Mr Oli i

0

这些答案都对我没用,可能是因为我的窗口有状态栏。为了解决这个问题,我做了以下操作:

StatusStripObject.SizingGrip = False

同样适用于 StatusBar 对象,例如:
StatusBarObject.SizingGrip = False

0

另一种方法是更改属性“AutoSize”(设置为True)和“AutosizeMode”(设置为GrowAndShrink)。

这样可以使窗体自适应其上的元素,并且永远不允许用户更改其大小。


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