C# 更改动态声明的按钮的属性
我在c#中动态创建了一个按钮。 代码基本上是这样的:C# 更改动态声明的按钮的属性,c#,C#,我在c#中动态创建了一个按钮。 代码基本上是这样的: Button b = new Button(); b.Name = "dynabutt"; this.Controls.Add(b); button2.Click += (s,e) => { this.Controls["dynabutt"].BackColor = Color.Blue; }; 我想要一个非动态按钮button2,这样当我点击button2时, 动态按钮的颜色将更改。可能吗?谢谢 您只需将事件处理程序附加到单击按钮
Button b = new Button();
b.Name = "dynabutt";
this.Controls.Add(b);
button2.Click += (s,e) => { this.Controls["dynabutt"].BackColor = Color.Blue; };
我想要一个非动态按钮button2,这样当我点击button2时,
动态按钮的颜色将更改。可能吗?谢谢 您只需将事件处理程序附加到
单击按钮2
的事件。如果您知道动态按钮的名称,则只需从控件集合中访问它并更改其颜色,如下所示:
Button b = new Button();
b.Name = "dynabutt";
this.Controls.Add(b);
button2.Click += (s,e) => { this.Controls["dynabutt"].BackColor = Color.Blue; };
当然,只需在全局某个位置声明变量b,使其在方法外可见(或分配给其他变量),例如:
public class Form1 : Form
{
public Button button1 = null;
public void SomeMethod()
{
Button b = new Button();
b.Name = "dynabutt";
this.Controls.Add(b);
button1 = b;
button1.BackColor = Color.Blue;
}
public void button2_Click(...)
{
if (button1 != null) button1.BackColor = Color.Red;
}
}
你试过什么?这并不是很难做到,但如果您还没有尝试任何东西,我不想为您详细说明所有内容。在按钮2
的单击事件中,您需要识别对b
的引用,然后设置该引用的属性。可以将b
设为类级成员或将其放在其他共享位置?可能在表单上的控件集合中动态查找b
?如果在somethod()
之前执行button2\u Click()
,您将得到NullReferenceException
对不起,我忘了。:)可能的NullReferenceException