vb.net- mouseEnter 和 MouseLeave 事件不工作

vb.net- mouseEnter and MouseLeave event not working

这是图片和代码.....但是,它对我不起作用。高手,请告知哪里出错了???

图片在这里: https://drive.google.com/open?id=1rUBq68ULDkTiFFv2uEiV_oQIh3wQIfhd

Private Sub PanelHome_MouseEnter(sender As Object, e As EventArgs) Handles PanelHome.MouseEnter
    PanelHome.BackColor = Color.FromArgb(100, 25, 181, 254)
End Sub

Private Sub PanelHome_MouseLeave(sender As Object, e As EventArgs) Handles PanelHome.MouseLeave
    PanelHome.BackColor = Color.FromArgb(255, 25, 181, 254)
End Sub

Private Sub PanelTuner_MouseEnter(sender As Object, e As EventArgs) Handles PanelTuner.MouseEnter
    PanelTuner.BackColor = Color.FromArgb(50, 25, 181, 254)
End Sub

Private Sub PanelTuner_MouseLeave(sender As Object, e As EventArgs) Handles PanelTuner.MouseLeave
    PanelTuner.BackColor = Color.FromArgb(255, 25, 181, 254)
End Sub

Private Sub PanelContents_MouseEnter(sender As Object, e As EventArgs) Handles PanelContents.MouseEnter
    PanelContents.BackColor = Color.FromArgb(50, 25, 181, 254)
End Sub

Private Sub PanelContents_MouseLeave(sender As Object, e As EventArgs) Handles PanelContents.MouseLeave
    PanelContents.BackColor = Color.FromArgb(255, 25, 181, 254)
End Sub

Private Sub PanelAboutUs_MouseEnter(sender As Object, e As EventArgs) Handles PanelAboutUs.MouseEnter
    PanelAboutUs.BackColor = Color.FromArgb(50, 25, 181, 254)
End Sub

Private Sub PanelAboutUs_MouseLeave(sender As Object, e As EventArgs) Handles PanelAboutUs.MouseLeave
    PanelAboutUs.BackColor = Color.FromArgb(255, 25, 181, 254)
End Sub

Private Sub PanelWriteToUs_MouseEnter(sender As Object, e As EventArgs) Handles PanelWriteToUs.MouseEnter
    PanelWriteToUs.BackColor = Color.FromArgb(50, 25, 181, 254)
End Sub

Private Sub PanelWriteToUs_MouseLeave(sender As Object, e As EventArgs) Handles PanelWriteToUs.MouseLeave
    PanelWriteToUs.BackColor = Color.FromArgb(255, 25, 181, 254)
End Sub

Edit1: 面板的停靠栏设置为 fill...

即使面板的停靠栏是 Fill,您的代码也适合我... 我认为您应该尝试隔离问题。 如果我创建一个包含 2 个面板的表单,一个停靠到 TOP,另一个停靠到 FILL,您的代码对我有用,使用事件 MouseEnter 和 MouseLeave ... 您的问题不在于扩展坞 属性,也不在于使用的事件。

如果还是找不到问题,可以从一个新的Form开始,一步步添加代码,直到找到让程序停止工作的步骤。

仅当鼠标触摸面板本身时才会引发鼠标事件。如果您在面板内有其他控件,那么当鼠标悬停在它们上面时,它们的鼠标事件将被触发。

在您的图像中,您似乎有一个 PictureBox 覆盖每个面板,这意味着您还必须处理其 MouseEnterMouseLeave 事件 为了这个工作:

Private Sub PanelHome_MouseEnter(sender As Object, e As EventArgs) 句柄 PanelHome.MouseEnter, PictureBoxHome.MouseEnter
    PanelHome.BackColor = Color.FromArgb(100, 25, 181, 254)
结束子

Private Sub PanelHome_MouseLeave(sender As Object, e As EventArgs) Handles PanelHome.MouseLeave, PictureBoxHome.MouseLeave
    '检查鼠标是否仍在控件的边界内。
    如果不是 PanelHome.DisplayRectangle.Contains(Cursor.Position) 那么
        PanelHome.BackColor = Color.FromArgb(255, 25, 181, 254)
    万一
结束子

(您也需要对其余代码执行相同的操作)

但是,如果您不需要以任何其他方式更改这些面板而不是背景颜色,那么最好删除面板并只保留图片框。