zoukankan      html  css  js  c++  java
  • Winform中利用委托实现窗体之间的传值

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

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

  • 相关阅读:
    使用FolderBrowserDialog组件选择文件夹
    使用OpenFileDialog组件打开多个文
    使用OpenFileDialog组件打开对话框
    获取弹出对话框的相关返回值
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1139 First Contact (30 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1138 Postorder Traversal (25 分)
    PAT 甲级 1137 Final Grading (25 分)
    PAT 甲级 1137 Final Grading (25 分)
  • 原文地址:https://www.cnblogs.com/yuer20180726/p/11316931.html
Copyright © 2011-2022 走看看