这是我的代码:
buttonName = "btn" + y.ToString() + x.ToString();
Control btn = this.Controls.Find(buttonName, true)[0] as Control;
btn.BackColor = System.Drawing.Color.Blue;
但是,我看不到边框颜色更改属性等。
我使用了这段代码,因为我的表单上有很多按钮,而且这些按钮的属性都可以改变,所以不是单独调用它们,而是编写了可以处理它们的代码。
是否有类似上面的代码,这样我可以更改按钮的边框颜色?
答案 0 :(得分:47)
我不确定你正在使用什么类型的应用程序,但是在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;
不幸的是,这只适用于带有FlatStyle的按钮。
答案 1 :(得分:2)
根据您的框架,有一个名为BorderColor的新属性
http://msdn.microsoft.com/en-us/library/system.windows.forms.flatbuttonappearance.bordercolor.aspx,
你检查过吗?
此处还有一个类似的例子
答案 2 :(得分:1)
您需要将Control转换为Button(或任何类型)。 Control是基类,不包含用于修改边框颜色的属性。这是一个Windows应用程序吗?
答案 3 :(得分:1)
你可以使用flatAppearance.BorderColor
btn.FlatAppearance.BorderColor = System.Drawing.Color.Blue;
答案 4 :(得分:0)
我知道这个问题是很久以前(在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
);
}
根据Microsoft(link)
适用于
.NET Framework
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