WinForms中堆叠透明PNG Panel并切换可见性异常问题求助
WinForms堆叠透明Panel显示异常问题
我正在制作一个WinForms表单,通过按钮控制多张图片的显示/隐藏,这是测试用例,实际项目逻辑一致。我把5张透明PNG分别设置为Panel的背景图,Panel的BackColor设为Transparent,在设计器里显示完全正常,但运行时图片显示异常。功能很简单,就是通过按钮切换Panel的可见性,奇怪的是Panel不堆叠时一切正常,堆叠后就出问题了。
相关截图:
现有代码
窗体加载事件
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load PicA.Visible = False PicB.Visible = False PicC.Visible = False PicD.Visible = False End Sub
全选按钮(BtnAll)点击事件
Private Sub BtnAll_Click(sender As Object, e As EventArgs) Handles BtnAll.Click If PicA.Visible = False Then PicA.Visible = True Else PicA.Visible = False End If If PicB.Visible = False Then PicB.Visible = True Else PicB.Visible = False End If If PicC.Visible = False Then PicC.Visible = True Else PicC.Visible = False End If If PicD.Visible = False Then PicD.Visible = True Else PicD.Visible = False End If End Sub
按钮A(BtnA)点击事件
Private Sub BtnA_Click(sender As Object, e As EventArgs) Handles BtnA.Click If PicA.Visible = True Then PicA.Visible = False Else PicA.Visible = True End If End Sub
按钮B(BtnB)点击事件
Private Sub BtnB_Click(sender As Object, e As EventArgs) Handles BtnB.Click If PicB.Visible = True Then PicB.Visible = False Else PicB.Visible = True End If End Sub
按钮C(BtnC)点击事件
Private Sub BtnC_Click(sender As Object, e As EventArgs) Handles BtnC.Click If PicC.Visible = True Then PicC.Visible = False Else PicC.Visible = True End If End Sub
按钮D(BtnD)点击事件
Private Sub BtnD_Click(sender As Object, e As EventArgs) Handles BtnD.Click If PicD.Visible = True Then PicD.Visible = False Else PicD.Visible = True End If End Sub
运行时切换Panel可见性会出现显示异常(有视频演示该现象)。
想请教:代码顺序、Panel堆叠顺序是否会影响结果?希望有人能指出问题所在,或者告知这种实现方式是否可行,感谢帮助。
内容的提问来源于stack exchange,提问作者NickVids
相关产品推荐
相关产品推荐



