2016-05-16 74 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

是的,这工作。谢谢您的帮助。 –

相关问题