恢复C#Windows窗体背景色

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

默认的背景色是SystemColor.Control

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

 btn.Text = "ABC"; btn.BackColor = Color.Yellow; 

当它再次被点击时,我做到了

 btn.BackColor = SystemColors.Control 

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

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

截图:

在此输入图像描述

试试这个:

 if (button1.BackColor == Color.Yellow) { button1.BackColor = SystemColors.Control; button1.UseVisualStyleBackColor = true; } else { button1.BackColor = Color.Yellow; } 

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

尝试使用btn.ResetBackColor()而不是手动设置BackColor

这将恢复默认外观(在Windows 7上测试,.net 3.5):

 btn.BackColor = System.Drawing.Color.Transparent;