Visual Basic 2008检查标签是否在面板内

问题描述 投票:1回答:1

所以我一直在尝试使用箭头键进行游戏。标签是字符,如果标签在对象内,它会做一些事......

但我遇到了一个在互联网上找不到的非常难的问题。

如何检查标签是否在对象内?示例:图片框和面板。

我试过这个。

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Label1.Location.X = Panel1.Location.X And Label1.Location.Y = Panel1.Location.Y Then
        Me.Close() 'Any code.
    End If
End Sub

不起作用,任何帮助将不胜感激。

顺便说一下,我是初学者,我只做简单的应用程序。喜欢逃离房间,迷宫...等

vb.net
1个回答
0
投票

我会使用label的parent属性来查看它是否在面板中。

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If Label1.Parent IsNot Nothing AndAlso Label1.Parent Is Panel1 Then
        Me.Close() 'Any code.
   End If
End Sub

如果你想看看Label是否在Panel上,我会尝试这样的事情。 ClientRectangle属性是控件占用的矩形。我假设面板比标签大。

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If  Panel1.ClientRectangle.Contains(Label1.ClientRectangle) Then
        Me.Close() 'Any code.
    End If
End Sub

如果它较小,您可以检查一个点是否在面板的矩形中。例如左上角

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If  Panel1.ClientRectangle.Contains(new Point(Label1.Left, Label1.Top)) Then
        Me.Close() 'Any code.
    End If
End Sub
© www.soinside.com 2019 - 2024. All rights reserved.