【问题标题】:Form border style none was closed while minimized to tray will not restore表单边框样式没有关闭,同时最小化到托盘不会恢复
【发布时间】:2016-07-01 07:12:16
【问题描述】:

在 VB.net 2013 中使用

创建了一个表单
Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None

还有一个按钮

Me.WindowState = System.Windows.Forms.FormWindowState.Minimized

问题是,如果用户在表单最小化到任务栏时关闭了表单,当您再次启动程序时...您可以在任务栏中看到该程序,但单击任务栏图标程序什么都不做...点击程序的通知托盘图标什么都不做...即使通知托盘图标设置为

Form.Show
Form.Activate
Form.WindowState = System.Windows.Forms.FormWindowState.Normal

我已尝试强制刷新表单。

我已尝试强制表单以初始大小重绘。

在这种失效状态之后再次显示它的唯一方法是放置

Me.WindowState = System.Windows.Forms.FormWindowState.Maximized 

在 form_load 事件中,然后让表单加载,停止调试,然后再次注释掉该行,使表单恢复到它应该是的样子。

我错过了什么吗?

此外,将鼠标悬停在程序的任务栏图标上会以 peek 的形式显示完整的表单...所以它似乎已加载,只是未处于应有的状态。

【问题讨论】:

  • 当您关闭表单时,您必须在某处将 FormWindowState 或位置和大小写入磁盘。
  • 天哪,是的,这是令人沮丧的一天,我应该看到这一点。谢谢!

标签: vb.net forms restore taskbar minimize


【解决方案1】:

关闭表单时,您可能正在编写 WindowState 或位置和大小属性。

如果保存位置和大小,请务必先检查 WindowState 属性:

If Me.WindowState = FormWindowState.Normal Then
  '// save your form size and location
End If

【讨论】:

  • 是的,我应该从一开始就这样做,但是当您尝试同时编写多个程序时......我有时会忘记我上次在做什么。
猜你喜欢
  • 2012-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-14
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多