VB.net中面板上的按钮

时间:2014-01-28 21:03:32

标签: vb.net

我有一个面板,有3个按钮相邻。按钮的大小与面板的大小相同。如何激活Panel1_MouseLeave事件,因为按钮会占用所有面板?

2 个答案:

答案 0 :(得分:0)

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

或者如上所述,使按钮比面板小1px。当MouseLeave()被触发时,检查鼠标位置。如果它在面板的边界,你还没有离开。如果超出界限,那么你就离开了。

答案 1 :(得分:0)

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

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