2012-01-05 2 views
2

Итак, у меня простая форма с кнопкой на ней. На событии MouseEnter формы я устанавливаю кнопку на видимую. В событии MouseLeave формы я устанавливаю кнопку скрытой. Фактически, только тогда, когда вы наводите курсор на форму, должна отображаться кнопка. Проблема в том, что когда вы наводите курсор на кнопку, она исчезает. Даже если кнопка находится прямо в центре формы, она все еще демонстрирует такое же поведение.Show on hover issue

Есть ли решение, отличное от размещения событий 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 

ответ

3

Да; в случае 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 
+0

Простой. Благодарю. –