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

zac*_*con 25 c# winforms

这是我的代码:

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

但是,我看不到边框颜色更改属性等.

我用这个代码,因为我有很多按钮的窗体上,任何这些按钮的属性可以改变,所以而不是单独叫出来,我只是做了该代码可能处理它们.

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

Jay*_*Jay 48

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

你可以这样做:

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;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只适用于具有FlatStyle的按钮.


BDu*_*ook 7

您可以使用 flatAppearance.BorderColor

    btn.FlatAppearance.BorderColor = System.Drawing.Color.Blue;
Run Code Online (Sandbox Code Playgroud)


Vie*_*tDD 5

我知道这个问题很久以前就被问过(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
                                );
    }
Run Code Online (Sandbox Code Playgroud)

根据微软的说法(链接

适用于

.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