2016-05-16 108 views
1

我想知道我的winform是否已經最小化了。有什麼方法可以知道表單是否已經最小化?

爲此,我不能使用屬性FormWindowState.Minimized。我們只是說這個屬性不適合我。

我可以使用離焦或表單停用事件來了解表單是否已最小化?據我所知,表單最小化時不會引發任何事件。

+3

*遠的不說,這個屬性是不是爲我工作* - 請提供一個原因,因爲這是唯一的* *(推薦)的方式... – Idos

+0

我還沒有想出爲什麼'FormWindowState.Minimized'不適合我,我只是想找到解決這個問題的方法。有沒有其他方法? –

+3

我認爲一個更好的方法是嘗試和理解爲什麼'FormWindowState.Minimized'不工作,而不是尋找解決方法...發佈您的代碼並提供[mcve],我相信人們會喜歡以幫助你 – Idos

回答

2

我不能使用屬性FormWindowState.Minimized用於此目的

這確實是你應該爲此目的使用屬性。

我可以使用離焦或表單停用事件來了解窗體是否已最小化?據我所知,表單最小化時不會引發任何事件。

當窗體最小化時,會觸發SizeChanged事件。例如,請嘗試以下操作:

// Inside the form constructor or load event 
this.SizeChanged += Form_SizeChanged; 

private void Form_SizeChanged(object sender, EventArgs e) 
{ 
    if (this.WindowState == FormWindowState.Minimized) 
     MessageBox.Show("I'm minimized."); 
} 
+0

SizeChanged事件應該可以工作,但每當我更改我的表單大小時它也會被觸發。 –

+0

確實。但是你會忽略其他調用,只檢查WindowState.Minimized。你可以跟蹤WindowState屬性的改變,但它沒有意義,因爲SizeChanged只會在表單最小化時觸發一次。 –

+0

是的,這工作。謝謝您的幫助。 –

相關問題