恢复C#Windows窗体背景色

Jon*_*onF 18 c# button winforms

我在Windows窗体表单上有一个按钮,我将其背景颜色更改为Color.Yellow单击时的颜色.再次单击时,我想将其恢复为原始默认外观.

默认的背景颜色是SystemColor.Control.

单击按钮时,我第一次更改的是

btn.Text = "ABC";
btn.BackColor = Color.Yellow;
Run Code Online (Sandbox Code Playgroud)

当它再次被点击时我会这样做

btn.BackColor = SystemColors.Control
Run Code Online (Sandbox Code Playgroud)

新背景与任何点击之前的阴影没有相同的阴影.该按钮最初的背景不是纯色,而是两种略有不同的灰色阴影.最终的颜色最终是一个坚实的灰色阴影.

我正在Windows 7机器上测试它.

截图:

在此输入图像描述

mj8*_*j82 23

试试这个:

if (button1.BackColor == Color.Yellow)
{
    button1.BackColor = SystemColors.Control;
    button1.UseVisualStyleBackColor = true;
}
else
{
    button1.BackColor = Color.Yellow;
}
Run Code Online (Sandbox Code Playgroud)


小智 11

您还应该将UseVisualStyleBackColor设置为true.更改背景颜色时,此属性设置为false.

  • +1这正是您解决问题所需要的. (2认同)