更改动态声明按钮的属性

本文关键字:属性 按钮 声明 动态 | 更新日期: 2023-09-27 17:50:15

我在c#中动态创建了一个按钮。代码基本上是这样的:

Button b = new Button();
b.Name = "dynabutt";
this.Controls.Add(b);

我想要一个非动态按钮button2,这样当我点击button2时,动态按钮的颜色改变。这可能吗?谢谢!

更改动态声明按钮的属性

你只需要给Button2Click事件附加一个事件处理程序,如果你知道动态按钮的名称你所需要做的就是从你的控件集合中访问它并改变它的颜色,像这样:

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;
    }
}