几个小时以来,我一直在尝试做一些实际上看起来“简单”的事情,但我无法理解如何去做......并且潜伏在 SO 或不同的网站上,这似乎并不那么明显。
问题很简单:我有一个包含多行的 tableLayoutPanel,每一行都包含一个面板,其中包含其他几个控件。
我只希望当鼠标进入一行时,行背景会发生变化,当鼠标离开该行时,它会恢复到原始颜色。
这些是简单的事件捕获器,其中 pnlLayoutRow 是包含其他控件的面板的名称:
Private Sub devRowMouseEnter(sender As System.Object, e As EventArgs) Handles pnlLayoutrow.MouseEnter
pnlLayoutrow.BackColor = Drawing.Color.FromArgb(&HFFFFEEAA)
End Sub
Private Sub devRowMouseLeave(sender As System.Object, e As EventArgs) Handles pnlLayoutrow.MouseLeave
pnlLayoutrow.BackColor = Drawing.Color.FromArgb(&HFFE7DEBD)
End Sub
问题是:每次我进入该行时都会正确触发 mouseEnter,但是一旦鼠标到达面板内的某个控件时就会触发 Mouseleave ......这让我发疯。
在其他环境中,我会解决这个问题,在整个面板上放置一个透明对象并捕获 mouseEnter 并离开该对象..但在 VB 中似乎不存在透明对象。
希望我的解释已经很清楚了。现在已经很晚了,我有点累了。
提前谢谢你希望有人能帮助我
克里斯蒂亚诺