【问题标题】:If I hold down the left or right mouse button, mouseenter doesn't work如果我按住鼠标左键或右键,mouseenter 不起作用
【发布时间】:2014-06-14 02:21:54
【问题描述】:

我正在制作一个游戏,您可以用鼠标触摸某些积木来得分,而其他人则会输掉游戏。我的朋友发现了一个错误,如果您按住鼠标左键或右键,计算机将不会检测到任何一个 mouseenter 事件。任何帮助将不胜感激!

【问题讨论】:

  • 那是因为该组合是为拖放操作保留的
  • 当您单击并移动时,这被视为拖动。这个答案可能会对您尝试做的事情有所帮助stackoverflow.com/questions/6042202/…
  • @ruedamanuel 这无济于事,因为在 WinForms 中 DragOver 和 DragEnter 是由于 OP 可能不想启动的 DoDragDrop 而被调用的

标签: vb.net mouseevent mouseover mouseenter


【解决方案1】:

假设 WinForms,当控件从用户按下鼠标按钮获得 MouseDown 事件时,它会“捕获”从那一刻开始的鼠标输入,直到释放鼠标按钮。这用于在鼠标离开控件时提供 MouseUp 事件。

你必须覆盖它,但有一个副作用:

Private Sub Panel1_MouseDown(sender As Object, e As MouseEventArgs) _
                                               Handles Panel1.MouseDown
  Panel1.Capture = False
End Sub

现在您无法保证 MouseUp 事件会触发,除非鼠标直接位于控件上方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 2017-11-04
    相关资源
    最近更新 更多