问题
记录制造遮罩层时遇到的问题,语言是C#。
初次制作遮罩层时用的是网上的代码,出处不知,代码也很好找,就不贴了,如图。
看上去很不错,都遮住了,但是这是在这个panel中没有其他panel的情况。拉入一个新的panel,把button3放入。
问题出现了,button3没被遮住。 有人说,可能是Z-index的问题,反正我用这个思路没解决问题。
解决问题
思路1(浅谈)
论坛有人说用form解决了,没详细说,我就尝试了一下,基本可行。
新建一个Form, 修改属性,
StartPosition ->CenterParent
Opacity ->50%
ShowInTaskbar -> false
FormBorderStyle -> None
Text -> 清空
修改一下背景颜色
在show的点击事件加入以下代码:
Form form = new opa();
form.Location = this.Location;
form.Size = this.Size;
form.ShowDialog();
效果图:
这结果看起来还行,修改一下遮罩Form的Location和Size或许就可以使用了。注意,form建议使用ShowDialog(),使用Show(),主窗口最小化时,遮罩层还在。form的解决思路到这里就没有继续研究了。
2021_4_20编辑:关于Form实现 推荐
https://blog.csdn.net/weixin_42535339/article/details/89637743
思路2
既能有弹出窗口,又能遮罩完全的方法是自己想的,略有些笨拙,但好歹能实现预期效果。
问题看起来是因为button3在panel1的panel2中,所以没法遮住,那就把panel2也加个遮罩吧。
代码
代码(在原代码上修改)