恢复C#Windows窗体背景色

问题描述 投票:17回答:4

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

默认的背景颜色是SystemColor.Control

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

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

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

btn.BackColor = SystemColors.Control

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

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

截图:

c# winforms button
4个回答
22
投票

试试这个:

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

11
投票

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


1
投票

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


1
投票

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

btn.BackColor = System.Drawing.Color.Transparent; 
© www.soinside.com 2019 - 2024. All rights reserved.