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

时间:2018-03-04 11:56:10

标签: vb.net

所以我一直试图用箭头键进行游戏。 标签是字符,如果标签在对象内部,它将执行某些操作......

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

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

我试过这个。

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

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

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

1 个答案:

答案 0 :(得分:0)

我会使用标签的父属性来查看它是否在面板内。

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

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

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