Vb.net 显示悬停问题

Vb.net 显示悬停问题,vb.net,winforms,Vb.net,Winforms,我有一个简单的表单,上面有一个按钮。在窗体的MouseEnter事件中,我将按钮设置为可见。在窗体的MouseLeave事件中,我将按钮设置为hidden。实际上,只有当您将鼠标悬停在窗体上时,才会看到该按钮。问题是,当您将光标放在按钮上时,它会消失。即使按钮直接位于表单的中心,它仍然表现出相同的行为 除了将MouseEnter/Exit事件放在按钮上以及表单中的所有内容之外,还有其他解决方案吗 Public Class VerticalStrip Private Sub Vertica

我有一个简单的表单,上面有一个按钮。在窗体的MouseEnter事件中,我将按钮设置为可见。在窗体的MouseLeave事件中,我将按钮设置为hidden。实际上,只有当您将鼠标悬停在窗体上时,才会看到该按钮。问题是,当您将光标放在按钮上时,它会消失。即使按钮直接位于表单的中心,它仍然表现出相同的行为

除了将MouseEnter/Exit事件放在按钮上以及表单中的所有内容之外,还有其他解决方案吗

Public Class VerticalStrip
    Private Sub VerticalStrip_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        btnAdd.Visible = False
    End Sub

    Private Sub VerticalStrip_MouseEnter(sender As Object, e As System.EventArgs) Handles Me.MouseEnter
        btnAdd.Visible = True
    End Sub

    Private Sub VerticalStrip_MouseLeave(sender As Object, e As System.EventArgs) Handles Me.MouseLeave
        btnAdd.Visible = False
    End Sub
End Class

对,;在
MouseLeave
事件中,首先检查鼠标是否确实离开了窗体:

Public Class VerticalStrip
    Private Sub VerticalStrip_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        btnAdd.Hide()
    End Sub

    Private Sub VerticalStrip_MouseEnter(sender As Object, e As System.EventArgs) Handles Me.MouseEnter
        btnAdd.Show()
    End Sub

    Private Sub VerticalStrip_MouseLeave(sender As Object, e As System.EventArgs) Handles Me.MouseLeave
        If Not Me.ClientRectangle.Contains(Me.PointToClient(Windows.Forms.Cursor.Position)) Then
            btnAdd.Hide()
        End If
    End Sub
End Class