WinForms有那三个位于右上角的方框,分别是最小化、最大化和关闭窗体。我想要做的是移除最小化和最大化,同时保留关闭。
我还想让关闭按钮最小化窗体而不是关闭它。
这个该怎么做呢?
Form
有两个属性叫做 MinimizeBox
和 MaximizeBox
,请将它们都设置为 false
。
为了阻止窗体关闭,需要处理 FormClosing
事件,在事件处理程序中设置 e.Cancel = true;
然后再设置 WindowState = FormWindowState.Minimized;
来最小化窗体。
将表单属性 MaximizeBox
和 MinimizeBox
设置为 False
将处理程序绑定到FormClosing
事件,然后设置e.Cancel = true
,并将表单的this.WindowState = FormWindowState.Minimized
。
如果您想要实际关闭窗体,请创建一个类范围布尔变量_close
,并在处理程序中将e.Cancel
设置为!_close
,这样当用户单击窗口上的X
时,它不会关闭,但是您仍然可以使用close = true; this.Close();
来关闭它(而不是直接杀死它)。
(为了让我的回答完整)将表单属性MaximizeBox
和MinimizeBox
设置为False
。
右键单击您想要隐藏它们的表单,在菜单中选择“控件”->“属性”。
在属性中,设置
您可以在设计器中完成此操作。
FormBorderStyle
: FixedDialog
MinimizeBox
: false
MaximizeBox
: false
这将在窗体上禁用最小化和最大化按钮。 public Form1(){
InitializeComponent();
MaximizeBox = false;
}
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
e.Cancel = true;
WindowState = FormWindowState.Minimized;
}
如果你不想要边框和最大化(包括禁用双击窗体最大化)或最小化,那么这对我来说是有效的:
public Form1()
{
InitializeComponent();
this.MaximizeBox = false;
this.ControlBox = false;
this.FormBorderStyle = FormBorderStyle.FixedSingle;
this.Text = string.Empty;
}
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}