vb.net相互前后移动面板
我一直在尝试如何将重叠的面板向前或向后移动,但没有成功,我认为下面的代码可以工作,但没有任何明显的效果vb.net相互前后移动面板,vb.net,panel,move,Vb.net,Panel,Move,我一直在尝试如何将重叠的面板向前或向后移动,但没有成功,我认为下面的代码可以工作,但没有任何明显的效果 Private Sub Panel2_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel2.Click Me.BringToFront() End Sub 也试过 Private Sub Panel3_click(ByVal sender As System.O
Private Sub Panel2_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel2.Click
Me.BringToFront()
End Sub
也试过
Private Sub Panel3_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel3.Click
Me.Activate()
End Sub
及
同样失败?在您的实际上下文中,我认为
Me
指的是表单。请尝试将代码更改为要更改的特定面板,而不是使用操作系统Me
:
Panel1.BringToFront()
如果需要,也可以使用事件的sender
变量获取面板:
Private Sub Panel3_click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Panel1.Click, Panel2.Click, Panel3.Click
Dim auxPanel As Panel = CType(sender, Panel)
auxPanel.BringToFront()
End Sub
顺便说一下,重新排列控件以使其重叠的正确方法是.BringToFront()
和.SendToBack()
.top
和.Activate
有不同的用途。请参阅MSDN文档了解其各自的功能。DirectCast(发送器,面板)
在这种情况下可能更好(如果只是为了更好的可读性,因为您不必转换类型,只需强制转换)
Private Sub Panel3_click(ByVal sender As Object, ByVal e As EventArgs) _
Handles Panel1.Click, Panel2.Click, Panel3.Click
Dim auxPanel As Panel = CType(sender, Panel)
auxPanel.BringToFront()
End Sub