【问题标题】:How would I change the border color of a button?如何更改按钮的边框颜色?
【发布时间】:2011-11-23 15:32:27
【问题描述】:

这是我的代码:

buttonName = "btn" + y.ToString() + x.ToString();
Control btn = this.Controls.Find(buttonName, true)[0] as Control;
btn.BackColor = System.Drawing.Color.Blue;

但是,我没有看到边框颜色更改属性等。

我使用此代码是因为我的表单上有很多按钮,并且这些按钮的任何属性都可以更改,因此我没有单独调用它们,而是编写了可以处理它们的代码。

是否有类似于上面的代码,可以让我改变按钮的边框颜色?

【问题讨论】:

  • 您没有看到边框颜色发生变化,但在您的代码中您设置了控件的 BackColor...
  • 嗯,背景颜色变化很好。但至于边框颜色,我看不到任何可以修改的属性。无论如何,不​​是来自那个代码。

标签: c# winforms


【解决方案1】:

我不确定您正在处理什么样的应用程序,但是在 winforms 中没有直接在其上的按钮的边框属性,即使在设计器中也是如此。您可以使用平面样式按钮。你的类型必须是按钮。

你可以这样做:

buttonName = "btn" + y.ToString() + x.ToString();
Button btn = this.Controls.Find(buttonName, true)[0] as Button;
btn.BackColor = System.Drawing.Color.Blue;
btn.FlatStyle = FlatStyle.Flat
btn.FlatAppearance.BorderColor = Color.Red;
btn.FlatAppearance.BorderSize = 1;

很遗憾,这仅适用于具有 FlatStyle 的按钮。

【讨论】:

  • 嗯,这很快。谢谢!如果我进行以下更改,那段代码就可以工作: Button btn = this.Controls.Find(buttonName, true)[0] as Button;
  • 是的,很抱歉在我复制您的代码时错过了第二个条目。编辑答案
【解决方案2】:

你可以使用 flatAppearance.BorderColor

    btn.FlatAppearance.BorderColor = System.Drawing.Color.Blue;

【讨论】:

    【解决方案3】:

    根据您的框架,有一个名为 BorderColor 的新属性

    http://msdn.microsoft.com/en-us/library/system.windows.forms.flatbuttonappearance.bordercolor.aspx,

    你检查了吗?

    这里还有一个类似的例子

    Change border color of Windows Forms Control on focus

    【讨论】:

      【解决方案4】:

      我知道这个问题是很久以前提出的(在 2011 年),但我认为我的评论对某人有用:不使用 FlatStyle,您可以在要更改的按钮的 Paint 事件中使用 ControlPaint.DrawBorder边框颜色

          private void btnName_Paint(object sender, PaintEventArgs e)
          {
              Button btn = (Button)sender;
      
              ControlPaint.DrawBorder(e.Graphics, btn.ClientRectangle,
                                      Color.LightGreen, 1, ButtonBorderStyle.Solid,
                                      Color.LightGreen, 1, ButtonBorderStyle.Solid,
                                      Color.LightGreen, 1, ButtonBorderStyle.Solid,
                                      Color.LightGreen, 1, ButtonBorderStyle.Solid
                                      );
          }
      

      根据微软 (link)

      适用于

      .NET 框架

      4.7.2、4.7.1、4.7、4.6.2、4.6.1、4.6、4.5.2、4.5.1、4.5、4.0、3.5、3.0、2.0、1.1

      【讨论】:

        【解决方案5】:

        您需要将您的控件转换为按钮(或任何类型)。控件是一个基类,不会包含修改边框颜色的属性。这是一个 Windows 应用程序吗?

        【讨论】:

        • 是的,这是一个 Windows 应用程序。如何将控件转换为 Button?
        • 按钮按钮 = 控件作为按钮;或 Button button = (Button)control;
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-19
        • 1970-01-01
        • 2017-08-03
        • 2018-11-03
        • 1970-01-01
        • 2010-12-25
        相关资源
        最近更新 更多