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


    下面我实现一个最简单的页面传值功能,相信初学者能一看就明白。

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

    View Code
     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;//将当前窗体赋给fatherform
    17             //frm.getTextHandler += new Form2.GetTextHandler(getValue);//给事件赋值(注意:GetText方法的参数必须与GetTextHandler委托的参数一样,方可委托)
    18             frm.getTextHandler = getValue;//将方法赋给委托对象
    19             frm.ShowDialog();
    20         }
    21     }

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

    View Code
     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即可

  • 相关阅读:
    一些有趣的chrome 插件
    蚁剑菜刀虚拟终端执行命令返回ret=127之bypass
    渗透工具:蚁剑(AntSword)教学
    追踪系统工作原理
    Burp Suite爆破Basic认证密码
    挖洞思路
    Spire.XLS打印页面设置教程 C# VB.NET Excel直接打印
    Connection is readonly. Queries leading to data modification are not allowed 解决方法
    shell order
    白帽专访丨大家好,我是王老师,Day1安全团队的创始人
  • 原文地址:https://www.cnblogs.com/pfcan66/p/2680596.html
Copyright © 2020-2023  润新知