在WinForm上禁用最小化和最大化?


98

WinForms的右上角具有这三个框,它们可以最小化,最大化和关闭表单。我想要做的是在保持接近的同时删除最小化和最大化。

我还介绍了使close最小化窗体而不是关闭窗体的方法。

如何才能做到这一点?

Answers:


161

Form有两个属性叫做MinimizeBoxMaximizeBox,他们都设置为false

要停止关闭表单,请处理该FormClosing事件,然后e.Cancel = true;在其中设置,然后设置WindowState = FormWindowState.Minimized;,以最小化表单。


1
您能否将控制框设置为false。
krystan荣誉

3
@krystanhonour OP希望保持关闭。
汉斯·奥尔森,2015年

16

设置MaximizeBoxMinimizeBox表格属性False


15

将处理程序绑定到FormClosing事件,然后进行设置e.Cancel = true,然后设置form this.WindowState = FormWindowState.Minimized

如果您想实际关闭表单,请创建一个全类的布尔值,_close并在您的处理程序中将其设置e.Cancel!_close,这样,只要用户单击X窗口上的,它就不会关闭,但是您仍然可以关闭它(不使用只是杀死它)close = true; this.Close();

(而只是为了让我的回答完毕)组MaximizeBoxMinimizeBox形式属性False


5

右键单击要隐藏它们的表单,选择“控件”->“属性”。

在属性中,设置

  • 控制箱->错误
  • 最小化框->错误
  • 最大化框->错误

您将在设计器中执行此操作。


4

已经回答了如何在关闭时使表单最小化,但是如何删除最小化和最大化按钮却没有。
FormBorderStyleFixedDialog
MinimizeBoxfalse
MaximizeBoxfalse


3

您可以简单地在表单构造函数中禁用最大化。

 public Form1(){
     InitializeComponent();
     MaximizeBox = false;
 }

关闭时最小化。

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.