2010-08-24 61 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