【问题标题】:vb.net moving panels backwards and forwards of eachothervb.net 彼此前后移动面板
【发布时间】:2013-09-03 08:38:27
【问题描述】:

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

    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

也失败了?

【问题讨论】:

    标签: vb.net panel move


    【解决方案1】:

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

    【讨论】:

    • DirectCast(sender, Panel) 在这种情况下可能会更好(如果只是为了更好的可读性,因为您不必转换类型,只需转换)
    猜你喜欢
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多