问题说明:
在基于C#的Winform项目开发过程中,有时需要实现调用Show()或者ShowDialog()后的窗体隐藏。
此时发现设置如下属性没有作用:
this.Visible = false;
解决方案:
Google了一段时间的解决方案后,发现了两种比较靠谱的解决方案,
推荐方案:
设置状态栏现实属性为false,并在Form中重写SetVisibleCore方法。
this.ShowInTaskbar = false
protected override void SetVisibleCore(bool value)
{
if (!this.IsHandleCreated) {
value = false;
CreateHandle();
}
base.SetVisibleCore(value);
}
备选方案:
设置任务栏显示属性为false,并设置透明度为0。
this.ShowInTaskbar = false;
this.Opacity = 0;