ITPub博客

首页 > 数据库 > 数据库开发技术 > Winform中利用委托实现窗体之间的传值

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

原创 数据库开发技术 作者:后端Q 时间:2023-01-02 00:00:00 0 删除 编辑
下面实现一个最简单的页面传值功能
点击打开按扭,打开传输值窗体
 1 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;//将当前窗体赋给fatherform17             //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即可

原文作者:后端Q;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2023-01-22

  • 博文量
    1540
  • 访问量
    726085