c# 跨窗体传递多个值的问题,如果是委托的话,请给个例子
我打算在form2中的textbox1,textbox2,textbox3分别赋值,关闭的时候,令主框体form1,的t1,t2,t3,分别获得这些值,请问怎么做~谢谢了...
我打算在form2中的textbox1,textbox2,textbox3分别赋值,关闭的时候,令主框体form1,的t1,t2,t3,分别获得这些值,请问怎么做~谢谢了
展开
1个回答
展开全部
form2是模态对话框吗?如果是的话(就是showdialog方式打开的
那么直接在form2里面添加t1 t2 t3三个成员变量,public方式
然后form2关闭的时候把textbox123的值赋给t123
再然后给form1的t123
像这样
Form2 f = new Form2();
f.ShowDialog();
t1 = f.t1;
t2 = f.t2;
t3 = f.t3;
那么直接在form2里面添加t1 t2 t3三个成员变量,public方式
然后form2关闭的时候把textbox123的值赋给t123
再然后给form1的t123
像这样
Form2 f = new Form2();
f.ShowDialog();
t1 = f.t1;
t2 = f.t2;
t3 = f.t3;
更多追问追答
追问
我想在关闭的时候执行,非模态的
追答
果然还是用委托吧。
form2里面声明一个public类型的委托
delegate void DeleSetValue(string p1, string p2, string p3);
之后声明一个事件(也是public
event DeleSetValue OnExitSetValue;
然后form1里面弄一个这样的函数
void SetT(string p1, string p2, string p3) { t1=p1; t2=p2; t3=p3; }
new了form2以后,
form2.OnExitSetValue += SetT;
form2在退出的时候,
if(OnExitSetValue != null)
OnExitSetValue.Invoke(textBox1.Text, textBox2.Text, textBox3.Text);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询