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

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

默认背景色为SystemColor.Control

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

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

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

btn.BackColor = SystemColors.Control

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

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

截图:

【问题讨论】:

  • 可以发截图吗?另外,您运行的是什么操作系统版本?
  • 您在问题上投入的精力越多,得到的答案就越好,因此请附上问题的屏幕截图。

标签: c# winforms button


【解决方案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; 
      

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 1970-01-01
        • 2016-02-05
        • 1970-01-01
        • 2016-01-08
        • 2013-08-21
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        相关资源
        最近更新 更多