c#怎么修改另一窗体中控件的属性

2025-02-27 09:05:51
推荐回答(5个)
回答1:

用event

Class Form1
{
public Form1()
{
Form2 form = new Form2();
form.TestBtn.Click += new System.EventHandler(this.Form2ButtonClicked);
}

private Form2ButtonClicked(object sender, EventArgs e)
{
this.label1.Text = "Clicked";
}
}

Class Form2
{
public Button TestBtn= new Button();
}

这只是最基本的实现方法 (当然不是好方法),等你明白event 和 delegate 以后,自己就会有更好的答案了。

回答2:

一般情况下的话应该需要有一个中间类来帮忙完成内容的传递 通常可以建个UserHelper来帮我们完成 里面有我们需要的属性 通过From2中的button为 UserHelper中的属性赋值 最好用模式窗体的形式打开窗体,这样更方便我们掌握取值的时间,在from2关闭的时候我就可以在用from1的laber获取UserHelper中的值了

回答3:

Form1里写
public string LableText
{
get{return this.label.Text;}
set{this.label.Text = value;}
}
打开form2时把自己传过去
new Form2(this).Show();

Form2构造:
pubilc Form2(Form1 f1)
{
....
}
按钮事件:
this.f1.LabelText = "aaaaaaaaa";

回答4:

修改From1里的laber属性(Modifiers 设置为 PUBLIC)

Class Form1
{
public Form1()
{
Form2 form = new Form2();
}

private Form2ButtonClicked(object sender, EventArgs e)
{
this.label1.Text = }
}

Class Form1
{
public Form1()
{
Form2 form = new Form2();
form.laber.Click += new System.EventHandler(this.button1);
}

private Form2ButtonClicked(object sender, EventArgs e)
{
this.label1.Text = "Clicked";
}
}

Class Form2
{
public Button TestBtn= new Button();

}

回答5:

好像没法在一个窗口掉另一个窗口的属性,要不你建一个中间类,把那个laber的txt属性保存起来,然后当form2打开的时候road方法去取中间类的那个值