使用委托进行窗体之间的传值
一、传统的方式
创建一个公共数据资源类,用于存储窗体2的TextBox的值:
public class ComValue { public static string Txtvalue { get; set; } }
窗体1的代码:
private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); }<br /> //使用timer 不停的对label2进行复制 private void timer1_Tick(object sender, EventArgs e) { label2.Text = ComValue.Txtvalue; }
窗体2的代码:
private void button1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Show(); } private void timer1_Tick(object sender, EventArgs e) { label2.Text = ComValue.Txtvalue; }
这种方式通过使用timer,消耗资源。
二、使用委托传值,将form1为lable2赋值的方法传递给form2
窗体1的代码:
private void button1_Click(object sender, EventArgs e) {<br /> //将SetValue传递给Form2,让Form2来执行这个方法 Form2 f2 = new Form2(SetValue); f2.Show(); } //给label2赋值的方法 void SetValue(string str) { label2.Text = str; }
窗体2的代码:
public delegate void del(string str); private del de1; public Form2(del del) { this.de1 = del; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { this.de1.Invoke(textBox1.Text.Trim());//这里最终执行的是窗体1的SetValue函数 }
窗体界面与执行结果:
相关推荐
lbyd0 2020-08-16
jameszgw 2020-06-14
jeason 2020-06-09
lucialee 2020-06-09
测试自动化顾问 2020-06-09
deadgrape 2020-06-09
VanTYS 2020-04-24
随心而作 2020-04-23
jackalwb 2020-04-08
明天你好 2020-03-06
tuxlcsdn 2020-03-04
Bonrui编程路 2020-02-26
Laozizuiku 2020-01-03
luoj 2011-01-28
王磊的程序员之路 2019-06-19
wyqwilliam 2019-09-07
gongshijun00 2011-05-09