还原C#Windows窗体背景色

还原C#Windows窗体背景色,c#,winforms,button,C#,Winforms,Button,我在Windows窗体上有一个按钮,单击该按钮时,我会将其背景颜色更改为color.Yellow。再次单击时,我希望将其恢复为原始默认外观 默认背景色为SystemColor.Control 第一次单击按钮时,我唯一更改的是 btn.Text = "ABC"; btn.BackColor = Color.Yellow; 当它再次点击时,我会 btn.BackColor = SystemColors.Control 新背景与单击之前的底纹不同。按钮最初的背景不是纯色,而是两种稍有不同的灰色。最

我在Windows窗体上有一个按钮,单击该按钮时,我会将其背景颜色更改为
color.Yellow
。再次单击时,我希望将其恢复为原始默认外观

默认背景色为
SystemColor.Control

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

btn.Text = "ABC";
btn.BackColor = Color.Yellow;
当它再次点击时,我会

btn.BackColor = SystemColors.Control
新背景与单击之前的底纹不同。按钮最初的背景不是纯色,而是两种稍有不同的灰色。最终的颜色是纯色的灰色

我正在Windows7机器上测试这个

截图:


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

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

请尝试以下操作:

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

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


你能发布一个截图吗?另外,您运行的操作系统版本是什么?您在问题上投入的精力越多,您得到的答案就越好,因此请包含问题的屏幕截图。相关信息:winform按钮中不存在该函数(至少在.net 3.5 winform中)它确实存在,只是在intellisense中没有显示,因为它被标记为[EditorBrowsable](EditorBrowsableState.Never)]@JonF根据它的存在,因为.Net 1.0My很糟糕。不幸的是,我得到了同样的结果
btn.BackColor = System.Drawing.Color.Transparent;