如何在 IconButton VB .NET WinForm 中处理 MouseHover 和 MouseLeave 事件
Posted
技术标签:
【中文标题】如何在 IconButton VB .NET WinForm 中处理 MouseHover 和 MouseLeave 事件【英文标题】:How to handle MouseHover and MouseLeave events in a IconButton VB .NET WinForm 【发布时间】:2020-07-12 05:06:39 【问题描述】:我有一个带有主页按钮 (btnHome) 的 VB .NET WinForm。
如何处理 FontAwesome IconButton 中的 MouseHover 和 MouseLeave 事件?
我尝试了以下方法,但没有成功:
Private Sub btnHome_MouseHover(sender As Object, e As EventArgs) Handles btnHome.MouseHover
Me.btnHome.BackColor = Color.Black
End Sub
Private Sub btnHome_MouseLeave(sender As Object, e As EventArgs) Handles btnHome.MouseLeave
Me.btnHome.BackColor = Color.Transparent
End Sub
在变为黑色之前,按钮上会出现向浅色的过渡。
另一方面,前面的代码适用于工具箱中的常见 Windows 窗体按钮。
我也尝试了其他两个事件但没有成功:
输入 移动我做错了什么?
提前致谢
【问题讨论】:
您是在设计时还是运行时创建 btnHome?HoverColor
和 NormalColor
在 Button 的构造函数中定义。之后,您可以设置ActiveColor
(悬停)和InActiveColor
(正常)。这些颜色用于绘制图标背景。
我使用常规按钮将浅色变为黑色。如果我使用 Enter 事件,它就会消失。
【参考方案1】:
这在 C# 中适用于我。请注意,透明不被官方支持作为按钮的背景颜色。但是其他颜色也可以(我用的是绿色)。您还应该在 InitializeComponent() 行之后的构造函数中将 BackColor 设置为与 MouseLeave 事件中的相同。
private void btnHome_MouseEnter(object sender, EventArgs e)
btnHome.BackColor = Color.Black;
private void btnHome_MouseLeave(object sender, EventArgs e)
btnHome.BackColor = Color.Green;
【讨论】:
【参考方案2】:Kim 的回答“不正式支持透明作为按钮的背景颜色”帮助我解决了这个问题:How to make button background transparent? 。
从那里,我设法解决了它:
With btnHome.FlatAppearance
.MouseOverBackColor = Color.FromArgb(125, RGBColors.color1)
.MouseDownBackColor = Color.Transparent
End With
FlatAppearance 是我一直在寻找的属性。
谢谢大家。
【讨论】:
以上是关于如何在 IconButton VB .NET WinForm 中处理 MouseHover 和 MouseLeave 事件的主要内容,如果未能解决你的问题,请参考以下文章