2010-08-24 58 views
1

我有一個小問題,如果我有一個WinForm並最大化它,並將其發送到系統托盤,當我恢復它時,它不再是最大尺寸。WinForm最大化托盤還原?

我試圖設置一個標誌IsMaximized爲true,如果表單被最大化時,它被髮送到托盤,但是當它被髮送到托盤時,表單狀態被最小化,所以它不捕獲當它被最大化時。

有關如何解決此問題的任何想法?

謝謝!

+0

「發送到系統托盤」 並不意味着什麼。重寫OnHandleCreated並在其上設置一個斷點。如果在「將其發送到托盤」時發生故障或恢復,那麼您可能找到了問題的原因。 – 2010-08-24 14:45:33

回答

1

試試這個:

if (this.WindowState == FormWindowState.Maximized) 
{ 
    if (this.Size != this.MaximumSize) 
    { 
     this.Size = this.MaximumSize; 
     this.WindwoState = FormWindowState.Maximized; 
    } 
} 
+0

除非由於某種原因,只要從系統托盤中恢復表單,它就會起作用,直到您在任務欄中單擊該表單纔會顯示該表單。有想法該怎麼解決這個嗎? – sooprise 2010-08-24 13:47:29

+0

我認爲這是因爲它不知道它現在最大化,所以 添加this.WindwoState = FormWindowState.Maximized; 我編輯了我的答案 – Wildhorn 2010-08-24 14:56:50

+0

我仍然遇到同樣的問題,新代碼...這很混亂。 – sooprise 2010-08-24 16:13:51

相關問題