我正在为我的应用程序创建一个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;
}


这就是我通常在项目中所做的。

07-27 20:22