2013-04-24 103 views
2

我一直在嘗試創建自己的程序,使用自定義關閉最大化和最小化按鈕(如在Visual Studio或Word 2013等...(我的邊框樣式設置爲「無「))所以我一直在試圖做的是創建三個按鈕。一個關閉選項,(工作正常)一個與最小化選項,(也可以正常工作)和一個最大化按鈕。單獨的最大化按鈕工作正常,但我想有像Windows標準按鈕,這樣,當窗體最大化,它會恢復形式以前的狀態(正常),我知道可以用C#自定義關閉,最小化和最大化按鈕

this.WindowState = FormWindowState.Normal; 

完成但如果你明白我的意思,它應該是一個按鈕。我試過的是製作一個布爾值,當表單被最大化時(用「if」語句),它的值被設置爲true,當表單未被最大化時(其他函數),該值被設置爲false。現在當單擊最大化按鈕時,表單將最大化,因此布爾值將設置爲true,但是當我再次單擊時,沒有任何反應!其他功能,如關閉和最小化工作得很好,我甚至做了一個「恢復」按鈕,這工作得很好!

讚賞任何幫助,這是我的代碼:

bool restore; 

    private void set_Restore() 
    { 
     { 
      if (this.WindowState == FormWindowState.Maximized) //Here the "is" functions is 
      { 
       restore = true; //Sets the bool "restore" to true when the windows maximized 
      } 
      else 
      { 
       restore = false; //Sets the bool "restore" to false when the windows isn't maximized 
      } 
     } 
    } 

    private void MaximizeButton_Click(object sender, EventArgs e) 
    { 
     { 
      if (restore == true) 
      { 
       this.WindowState = FormWindowState.Normal; //Restore the forms state 
      } 
      else 
      { 
       this.WindowState = FormWindowState.Maximized; //Maximizes the form 
      } 
     } 
    } 

嗯,我有三次警告,這是一個我認爲是錯誤的:

字段「WindowsFormsApplication2.Form1.restore」永遠不會分配給它,並且始終將其默認值設置爲false。

我認爲它說從不使用布爾「恢復」,並將永遠使用它的默認值FALSE,它不應該因爲我的set_Restore時它最大化。

另外兩個警告是:

變量「恢復」被分配但其值從未使用 變量「恢復」被分配但其值從未使用

預先感謝您。

回答

3

你在你的set_Restore()方法創建一個新當地恢復變量:

bool restore = true; 

試着改變它只是:

restore = true; 

我甚至不認爲該變量雖然需要。我想你可以這樣做:

private void MaximizeButton_Click(object sender, EventArgs e) { 
    if (this.WindowState == FormWindowState.Maximized) { 
    this.WindowState = FormWindowState.Normal; 
    } else { 
    this.WindowState = FormWindowState.Maximized; 
    } 
} 
+0

謝謝你,還有我試圖找出自己,這就是你學習,你知道,我無法找到一個toturial有關,所以我猜我會自己做一個;)謝謝! – 2013-04-27 18:45:08

+0

現在看起來好像很嚇人... – 2013-04-27 18:45:35

相關問題