0

我一直在尝试锻炼如何将重叠的面板向前或向后移动,但没有成功,我认为下面的代码可以工作,但没有任何明显的效果。

    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

    Private Sub Panel3_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel3.Click
    Me.TopMost = True
End Sub

也失败了?

4

1 回答 1

0

在您的实际上下文中,我认为Me是指形式。而不是 os using 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().TopMost并且.Activate有不同的用途。请参阅有关它的 MSDN 文档以了解它们各自的功能。

于 2013-09-03T08:50:02.317 回答