C# 如何更改按钮的边框颜色?

C# 如何更改按钮的边框颜色?,c#,winforms,C#,Winforms,这是我的代码: buttonName = "btn" + y.ToString() + x.ToString(); Control btn = this.Controls.Find(buttonName, true)[0] as Control; btn.BackColor = System.Drawing.Color.Blue; 但是,我看不到边界颜色更改属性等 我使用这段代码是因为我的表单上有很多按钮,这些按钮的任何属性都可以更改,所以我没有单独调用它们,而是编写了可以处理它们的代码 是否

这是我的代码:

buttonName = "btn" + y.ToString() + x.ToString();
Control btn = this.Controls.Find(buttonName, true)[0] as Control;
btn.BackColor = System.Drawing.Color.Blue;
但是,我看不到边界颜色更改属性等

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


是否有类似于上述代码的代码,允许我更改按钮的边框颜色?

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

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

,

你查过了吗

这里还有一个类似的例子


我不确定您正在使用哪种类型的应用程序,但是在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的按钮。

您可以使用flatAppearance.BorderColor

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

我知道这个问题在很久以前(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
                                );
    }
据微软()

适用于

.NET框架

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


你看不到边框颜色的变化,但是在你的代码中你设置了控件的背景颜色…嗯,背景颜色变化很好。但是对于边框颜色,我看不到任何可以修改的属性。无论如何,不是从那个代码。是的,这是一个windows应用程序。如何将控件转换为按钮?按钮按钮=控件转换为按钮;或按钮=(按钮)控件;嗯,那很快。谢谢如果我做了以下更改,那么这段代码可以工作:Button btn=this.Controls.Find(buttonName,true)[0]作为按钮;是的,很抱歉我复制你的代码时错过了第二个条目。编辑答案