恢复 C# Windows 窗体背景色

Posted

技术标签:

【中文标题】恢复 C# Windows 窗体背景色【英文标题】:Restore C# Windows Forms backcolor 【发布时间】:2012-01-03 07:49:02 【问题描述】:

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

默认背景色为SystemColor.Control

当第一次点击按钮时,我唯一改变的是

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

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

btn.BackColor = SystemColors.Control

新背景的底纹与点击前的底纹不同。该按钮最初的背景不是纯色,而是两种略有不同的灰色阴影。最终的颜色是纯灰色。

我正在一台 Windows 7 机器上对此进行测试。

截图:

【问题讨论】:

可以发截图吗?另外,您运行的是什么操作系统版本? 您在问题上投入的精力越多,得到的答案就越好,因此请附上问题的屏幕截图。 相关:How to reset to default button BackColor? 【参考方案1】:

试试这个:

if (button1.BackColor == Color.Yellow)

    button1.BackColor = SystemColors.Control;
    button1.UseVisualStyleBackColor = true;

else

    button1.BackColor = Color.Yellow;

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

winform 按钮中不存在该功能(至少在 .net 3.5 winform 中) 它确实存在,只是没有显示在智能感知中,因为它被标记为 [EditorBrowsable(EditorBrowsableState.Never)] @JonF 根据MSDN 它存在,因为.Net 1.0 我的错。不幸的是,我得到了相同的结果【参考方案4】:

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

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

【讨论】:

以上是关于恢复 C# Windows 窗体背景色的主要内容,如果未能解决你的问题,请参考以下文章

C# winform 制作圆形窗体

C# DataGridViewButtonColumn 按键的背景色怎样修改?

Windows窗体透明背景

解决panel或者其他控件叠加时,此控件背景透明,显示的背景色为窗体背景色问题

C# winForm怎么把textbox 不可见

eclipse代码提示框背景色改动