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;
}));
}));
}
}


有谁碰到过这个问题,该如何解决呢?
...全文
69 点赞 收藏 2
写回复
2 条回复
神界码农-D-艾斯 2020年04月21日
解决了吗?怎么解决的?我现在也是MDI从任务栏隐藏,双击托盘重新打开。Visible 在XP系统和winserver系统上无效。
回复 点赞
圣殿骑士18 2018年07月30日
补充一下,用替代方案:
this.Visible = false;
之后 再 this.Visible = true; 可行。

但我还是想探究一下使用 this.ShowInTaskbar = false; 不行的原因?
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告