VB.net中面板上的按钮

VB.net中面板上的按钮,vb.net,Vb.net,我有一个面板,有3个按钮彼此相邻。总的来说,按钮与面板的大小相同。如何使Panel1_MouseLeave事件启动,因为按钮占据了整个面板?当您将鼠标悬停在按钮上方时,Panel1_MouseLeave将启动。您可以使用button_MouseLeave和Panel1_MouseLeave的组合来确定鼠标何时实际离开控件 或者如上所述,使按钮比面板小1px。当鼠标触发时,检查鼠标位置。如果它在面板的边界内,则表示您尚未离开。如果超出边界,则表示您已离开。在表单中添加计时器并检查鼠标位置: Pri

我有一个面板,有3个按钮彼此相邻。总的来说,按钮与面板的大小相同。如何使Panel1_MouseLeave事件启动,因为按钮占据了整个面板?

当您将鼠标悬停在按钮上方时,Panel1_MouseLeave将启动。您可以使用button_MouseLeave和Panel1_MouseLeave的组合来确定鼠标何时实际离开控件


或者如上所述,使按钮比面板小1px。当鼠标触发时,检查鼠标位置。如果它在面板的边界内,则表示您尚未离开。如果超出边界,则表示您已离开。

在表单中添加计时器并检查鼠标位置:

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  If Panel1.ClientRectangle.Contains(Panel1.PointToClient(MousePosition)) Then
    If Not insidePanel Then
      insidePanel = True
      // do something...
    End If
  Else
    If insidePanel Then
      insidePanel = False
      // do something
    End If
  End If
End Sub

把按钮弄小一点?谢谢你的帮助,但我没法让它工作。仅供参考,我找不到button_MouseLeave和Panel1_MouseLeave的正确组合使其工作,尽管我确信这是可能的,但这听起来是一个很好的解决方案。使按钮变小1倍是可行的,但是如果你移动鼠标太快,它会跳过它,即使我使按钮变小了。再次感谢!