winForm 如下 web 的不懂 public class FormA { private Label label1; public string LabelText { set { label1.Text = value; } } private void ShowFromB() { FromB formB = new FromB(); formB.fromA = this; formB.Show(); } }public class FormB { private FormA forma; public FormA formA { set { forma = value; } } private void SetFromA() { forma.LabelText = "YoueString"; } }
修改不了?我试了,修改得了。 Form2 f = new Form2(); f.Show(); f.label1.Text = "sss";如果你第二句是用的ShowDialog();那么弹出的是一个模式对话框,必须要等到Form2关闭才能继续执行,所以后面那句当然就没用。 如果你是用的ShowDialog,那么你就应该在之前赋值。 Form2 f = new Form2(); f.label1.Text = "sss"; f.ShowDialog();
因为每个控件(变量)都是其所属窗体的private变量,从别的类(比如窗体)是看不到的.
不过,办法还是有很多的.
//共享实例}
B窗体使用opener.document.getElementByID("txt").value="新值"
public class FormA
{
private Label label1; public string LabelText
{
set
{
label1.Text = value;
}
} private void ShowFromB()
{
FromB formB = new FromB();
formB.fromA = this;
formB.Show();
}
}public class FormB
{
private FormA forma;
public FormA formA
{
set
{
forma = value;
}
}
private void SetFromA()
{
forma.LabelText = "YoueString";
}
}
Form2 f = new Form2();
f.Show();
f.label1.Text = "sss";如果你第二句是用的ShowDialog();那么弹出的是一个模式对话框,必须要等到Form2关闭才能继续执行,所以后面那句当然就没用。
如果你是用的ShowDialog,那么你就应该在之前赋值。
Form2 f = new Form2();
f.label1.Text = "sss";
f.ShowDialog();
http://www.itfat.com/tech/nettech/nettech20051215/59730.html
http://dev.csdn.net/article/26/26433.shtm
在A窗口中定义代理和事件,在B窗中触发
public System.Windows.Forms.Label label1;A aa = new A();
aa.label1.Text= "hello !";
这样就可以访问了。
public static System.Windows.Forms.Label label1;
aa.label1.text = "hello !";
这样写是你又New了一个对象,不是原来你弹开的哪个窗体!