1委托最好
2属性
public class Form1:Form { public Form1(){ Form2 frm=new Form2("Hello"); frm.show(); // Form2 frm2=new Form2(); frm2.Message="China!"; frm2.show(); } } public class Form2:Form{ public string Message{get;set;} public Form2(){ } public Form2(string message){ this.Message=message; } }
我的窗口只打开一次,只在第一次时打开,然后另外一个窗口的值有了更新,需要在这个窗口中更新,而不重新打开这个窗体
@捂着肚子: 那就用委托啦。。。
1 利用委托事件来传递数据 2 Form1中:一个lable1用来接受Form2中textbox1的信息,button1用来show出Form2 3 Form1中代码: 4 using System; 5 using System.Collections.Generic; 6 using System.ComponentModel; 7 using System.Data; 8 using System.Drawing; 9 using System.Text; 10 using System.Windows.Forms; 11 namespace WinTest 12 { 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 private void button1_Click(object sender, EventArgs e) 20 { 21 //单击该按钮时SHOW出第二个窗体 22 Form2 fm2 = new Form2(); 23 fm2.myevent += new Form2.mydelegate(givevalue);//在SHOW出窗体的同时订阅FORM2的事件,调用givevalue()方法. 24 fm2.ShowDialog(); 25 } 26 public void givevalue(string text) //用于修改label的方法 27 { 28 this.label1.Text = text; 29 } 30 } 31 } 32 Form2中:一个textbox1用来输入要传递的值,button1用来触发传递事件 33 Form2代码: 34 using System; 35 using System.Collections.Generic; 36 using System.ComponentModel; 37 using System.Data; 38 using System.Drawing; 39 using System.Text; 40 using System.Windows.Forms; 41 namespace WinTest 42 { 43 public partial class Form2 : Form 44 { 45 public delegate void mydelegate(string text);//定义一个委托 46 public event mydelegate myevent;//定义上诉委托类型的事件 47 public Form2() 48 { 49 InitializeComponent(); 50 } 51 private void button1_Click(object sender, EventArgs e) 52 { 53 //在单击该窗体上的按钮时触发事件 54 if (myevent != null) 55 { 56 myevent(textBox1.Text); 57 } 58 } 59 } 60 }
@捂着肚子:
delegate!
这个是什么??? 我是初学者,,求解 谢谢
委托
我是初学者,,还木有学委托的 还有其他方法没 谢谢 了
委托是最好的方法
那用委托怎么做?
委托