所以我想在Visual Basic中制作一个迷宫游戏,如果光标到达某个面板,它会显示一个消息框,然后表格关闭。
问题是如何? 我试过了
TS2314: Generic type 'PropertyList' requires 3 type argument(s)
并没有奏效。我得到了
错误1重载解析失败,因为无法访问' ='可 用这些参数调用: ' Public Shared Operator =(left As System.Drawing.Point,right As System.Drawing.Point)As Boolean':Type of Value ' System.Windows.Forms.Panel'无法转换为 ' System.Drawing.Point&#39 ;. C:\ Documents and Settings \ Admin \ Local 设置\应用程序数据\临时 Projects \ WindowsApplication1 \ Form1.vb 4 12 WindowsApplication1
请记住,我希望消息框只出现一次,因为有时当光标在面板上时,它会显示多个msgbox,直到光标在那里。
我希望鼠标位于面板内并运行代码。
答案 0 :(得分:0)
我相信有一个名为'鼠标输入'事件的事件你可以使用,所以如果你键入消息框的代码,即使对于你希望它们鼠标悬停的控件,它也会在每次执行时弹出。
如果计数器已经在1上,那么只要一次制作一个加1的计数器并且不执行该代码就可以了。
答案 1 :(得分:0)
我进行了一些搜索,发现:Determine whether the mouse is over a control? (over a Control pixel range)
我刚用按钮敲了一下测试,似乎工作正常。请适应您自己的需求。
Private Sub Button1_Paint(sender As Object, e As PaintEventArgs) Handles Button1.Paint
Debug.WriteLine(MouseIsOverControl(Button1))
End Sub
Public Function MouseIsOverControl(ByVal c As Control) As Boolean
Return c.ClientRectangle.Contains(c.PointToClient(Control.MousePosition))
End Function
在这个例子中,我只输出"真或假"确定检测。您可以根据自己的需要对其进行测试和更改,以确定您要执行的操作,具体取决于' true / false'。希望这会有所帮助。