这是我的代码:
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的按钮.
您可以使用 flatAppearance.BorderColor
btn.FlatAppearance.BorderColor = System.Drawing.Color.Blue;
Run Code Online (Sandbox Code Playgroud)
我知道这个问题很久以前就被问过(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