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

Posted

技术标签:

【中文标题】在 WinForm 上禁用最小化和最大化?【英文标题】:Disabling Minimize & Maximize On WinForm? 【发布时间】:2011-03-02 20:10:15 【问题描述】:

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

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

如何做到这一点?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

你能不能把控制框设置为false。 @krystanhonour OP 想要保持关闭状态。【参考方案2】:

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

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

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

【讨论】:

【参考方案3】:

MaximizeBoxMinimizeBox 表单属性设置为False

【讨论】:

【参考方案4】:

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

在属性中,设置

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

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

【讨论】:

【参考方案5】:

如何在关闭时使表单最小化已得到解答,但如何删除最小化和最大化按钮未得到解答。FormBorderStyle: FixedDialogMinimizeBox :falseMaximizeBox:false

【讨论】:

【参考方案6】:

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

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

关闭时最小化。

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

【讨论】:

【参考方案7】:
public Form1()

InitializeComponent();
//this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MaximizeBox = false;
this.MinimizeBox = false;

【讨论】:

请add对你的回答做一些解释 朋友,很简单,只需要看每一行代码 在 SO 上是低质量的答案

以上是关于在 WinForm 上禁用最小化和最大化?的主要内容,如果未能解决你的问题,请参考以下文章

C#中 怎样在Winform窗体 右上角最小化左边添加一个按钮 ?像Q2013登录界面那种设置的按钮?

winform 模式窗体最小化,父窗体也最小化,该怎样做?

WinForm窗体最小化后还原,里面的控件布局就乱了。 怎么解决?

winform 程序 直接打开时 窗口大小正好 可最大化后就停靠在左上角了 能不能最大化后还是居中呢

winform如何控制子窗体最小化后不影响操作主窗体打开子窗体

C# WinForm 窗体最小化之后 点击最大化时 只显示整个窗体的一角,不显示全部