我正在为我的应用程序创建一个CustomButton控件。现在,我要执行的操作是,当鼠标移到按钮上时,它应该显示发光效果,而当鼠标离开时,它应该恢复正常。但是发光效果不应立即显示。它应该与动画一起显示。就像Chrome浏览器标签页一样。我已经在按钮控件中尝试了这种逻辑。
这是我的逻辑。但是,我认为这不是正确的方法。请提出获得发光效果的正确方法。
private void ShowGlow()
{
for (int i = 0; i<50; i+= 5)
{
Sleep(100);
Graphics g = this.CreateGraphics();
Color color = Color.FromArgb(i, 150,150,25);
g.FillRectangle(new SolidBrush(color), this.ClientRectangle);
}
}
额外细节
Visual Studio 2005,Windows XP,Windows窗体控件
最佳答案
我建议您使用一种更简单的方法。
创建两个具有辉光效果且不具有辉光效果的图像。
并使用此代码。
在MouseEnter上:
private void MyButton_MouseEnter(object sender, EventArgs e)
{
MyButton.BackgroundImage = Properties.Resources.WithGlow;
}
在MouseLeave上:
private void MyButton_MouseLeave(object sender, EventArgs e)
{
MyButton.BackgroundImage = Properties.Resources.WithoutGlow;
}
这就是我通常在项目中所做的。