Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vb.net相互前后移动面板_Vb.net_Panel_Move - Fatal编程技术网

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