首页 > Windows开发 > 详细

Winform中利用委托实现窗体之间的传值

时间:2019-08-07 18:38:17      阅读:80      评论:0      收藏:0      [点我收藏+]

点击打开按扭,打开传输值窗体

public partial class Form1 : Form
 2     {
 3         public Form1()
 4         {
 5             InitializeComponent();
 6         }
 7 
 8         public void getValue(string strV)
 9         {
10             this.textBox1.Text = strV;
11         }
12 
13         private void button1_Click(object sender, EventArgs e)
14         {
15             Form2 frm = new Form2();
16             //frm.fatherform = this;//将当前窗体赋给fatherform
17             //frm.getTextHandler += new Form2.GetTextHandler(getValue);//给事件赋值(注意:GetText方法的参数必须与GetTextHandler委托的参数一样,方可委托)
18             frm.getTextHandler = getValue;//将方法赋给委托对象
19             frm.ShowDialog();
20         }
21     }

输入值后点击传输按扭,‘value‘将显示在接收值窗体的TextBox上

 1 public partial class Form2 : Form
 2     {
 3         public Form2()
 4         {
 5             InitializeComponent();
 6         }
 7         //public Form1 fatherform;
 8 
 9         public delegate void GetTextHandler(string text);//声明委托
10        // public event GetTextHandler getTextHandler = null;//定义委托事件
11        public  GetTextHandler getTextHandler;//委托对象
12         private void button1_Click(object sender, EventArgs e)
13         {
14             //if (fatherform != null)
15             //{
16             //    fatherform.getValue(this.textBox1.Text.Trim());
17             //    this.Close();
18             //}
19             if (getTextHandler != null)
20             {
21                 getTextHandler(this.textBox1.Text.Trim());
22                 this.Close();
23             }
24         }
25     }

这里主要为大家呈现了两种传值方式:

一、将Form1窗体传给fatherform对象,随后我们就可以在Form2中操作Form1了。

二、使用委托,将getValue方法赋给事件或委托对象getTextHandler,那么实现getValue操作就不用自己去做了因为已经委托给getTextHandler,直接调用getTextHandler即可

Winform中利用委托实现窗体之间的传值

原文:https://www.cnblogs.com/yuer20180726/p/11316931.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!