vb.net - 鼠标输入和鼠标离开事件不起作用



这是图像和代码.....但是,它对我不起作用。专家,请告诉错误在哪里???

图片在这里: 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

编辑1:面板的停靠栏设置为填充...。

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

如果仍然找不到问题,则可以从新窗体开始,然后逐步添加代码,直到找到使程序停止工作的步骤。

仅当鼠标触摸面板本身时,才会引发鼠标事件。如果面板中有其他控件,则当鼠标悬停在它们上方时,将引发其鼠标事件。

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

私有子PanelHome_MouseEnter(sender as object, e as eventArgs( handle PanelHome.MouseEnter,PictureBoxHome.MouseEnter PanelHome.BackColor = Color.FromArgb(100, 25, 181, 254( 结束子 私有子PanelHome_MouseLeave(sender As Object,e As EventArgs(处理PanelHome.MouseLeave,PictureBoxHome.MouseLeave'检查鼠标是否仍在控件的边界内。 如果不是 PanelHome.DisplayRectangle.Contains(Cursor.Position( 则 PanelHome.BackColor = Color.FromArgb(255, 25, 181, 254( 结束如果 End Sub

(你也需要对代码的其余部分做同样的事情(

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

最新更新