ShowInTaskbar 的问题。

圣殿骑士18 2018-07-30 07:10:00
在基于WeifenLuo组件的winform程序上,实现托盘图标的时候,发现ShowInTaskbar 和 其中的mdi子窗体有冲突。
因为在最小化窗体的时候,需要设置 ShowInTaskbar = false; 结果发现再重新设置回 ShowInTaskbar = true时,子窗体不显示了。
最小化前:

最小化后再恢复:


为了排除实现托盘图标的相关代码的影响,我屏蔽了相关代码,并只在最小化事件中做了个测试,将ShowInTaskbar 先设置false,等待5s后再设置true。
结果就是上图的情况。
private void FormMain_SizeChanged(object sender, EventArgs e)
{
//判断是否选择的是最小化按钮
if (WindowState == FormWindowState.Minimized)
{
//隐藏任务栏区图标
this.ShowInTaskbar = false;
ThreadHelper.WaitFor(5, new Action(() =>
{
this.BeginInvoke(new Action(()=>
{
this.ShowInTaskbar = true;
}));
}));
}
}


有谁碰到过这个问题,该如何解决呢?
...全文
350 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
解决了吗?怎么解决的?我现在也是MDI从任务栏隐藏,双击托盘重新打开。Visible 在XP系统和winserver系统上无效。
圣殿骑士18 2018-07-30
  • 打赏
  • 举报
回复
补充一下,用替代方案:
this.Visible = false;
之后 再 this.Visible = true; 可行。

但我还是想探究一下使用 this.ShowInTaskbar = false; 不行的原因?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧