2010-06-11 47 views
76

WinForms在右上角有三个框,用于最小化,最大化和关闭表单。我希望能够做的是消除最小化和最大化,同时保持关闭。在WinForm上禁用最小化和最大化?

我也是什么使关闭最小化的形式,而不是关闭它。

这怎么办?

回答

122

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

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

+0

你能不能只设置控制箱为false。 – 2015-03-18 09:03:00

+1

@krystanhonour OP想要保持接近。 – 2015-03-19 10:28:35

+0

ahh够公平:) – 2015-03-19 11:11:08

10

设置MaximizeBoxMinimizeBox表格属性False

14

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

如果你想永远实际关闭的形式,使一个类范围内的布尔_close,在您的处理程序,设置e.Cancel!_close,这样当用户点击窗口上的X,不会关闭,但你仍然可以将其关闭(不只是杀死它)与close = true; this.Close();

(而只是为了让我的回答完全)设置MaximizeBoxMinimizeBox表格属性False

1

您可以简单地禁用最大化内部窗体构造函数。

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

最小化关闭时。

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

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

在属性中,设置

  • 控制盒 - >假
  • 最小化模块 - >假
  • 最大化框 - >假

你会在设计做到这一点。

1

如何使表格最小化时关闭已被回答,但如何删除最小化和最大化按钮不是。
FormBorderStyleFixedDialog
MinimizeBoxfalse
MaximizeBoxfalse