106

WinForms 在右上角有这三个框,用于最小化、最大化和关闭表单。我想要做的是删除最小化和最大化,同时保持关闭。

我还有什么使关闭最小化而不是关闭它。

如何才能做到这一点?

4

7 回答 7

172

Form有两个名为MinimizeBoxand的属性MaximizeBox,将它们都设置为false

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

于 2010-06-11T20:19:48.053 回答
16

设置MaximizeBoxMinimizeBox形成属性False

于 2010-06-11T20:18:13.543 回答
16

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

如果您想真正关闭表单,请创建一个类范围的布尔值_close,并在您的处理程序中设置e.Cancel!_close,这样每当用户单击X窗口时,它不会关闭,但您仍然可以关闭它(无需只是杀死它)close = true; this.Close();

(只是为了让我的答案完整)将属性设置MaximizeBoxMinimizeBox形成False.

于 2010-06-11T20:20:26.630 回答
8

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

在属性中,设置

  • 控制框 -> 假
  • 最小化框 -> False
  • 最大化框-> False

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

于 2014-10-24T12:23:36.727 回答
6

关闭时如何使表单最小化已经得到解答,但没有回答如何删除最小化和最大化按钮。
FormBorderStyle: FixedDialog
MinimizeBox: false
MaximizeBox:false

于 2017-07-27T06:05:41.457 回答
3

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

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

关闭时最小化。

private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
    e.Cancel = true;
    WindowState = FormWindowState.Minimized;
}
于 2013-12-17T10:32:39.857 回答
0
public Form1()
{
InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;
}
于 2019-03-28T08:45:19.030 回答