2010-06-11 54 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