zoukankan      html  css  js  c++  java
  • 用委托实现窗体间传值

    1. 新建一个工程.在Form1中添加一个Label和一个Button.新建一个事件类,让它有一个string 类型的属性,用于传值.
      代码
       1 ///ReturnValueEventArgs.cs
       2 using System;
       3 using System.Collections.Generic;
       4 using System.Text;
       5 
       6 namespace test
       7 {
       8     public  class ReturnValueEventArgs:EventArgs 
       9     {
      10         private string str;
      11 
      12         public string strMessage
      13         {
      14             get
      15             {
      16                 return str;
      17             }
      18             set
      19             {
      20                 str = value;
      21             }
      22         }
      23     }
      24 }
      25 
    2.  新建一个窗体Form2.添加一个TextBox和一个Button.添加如下代码.
      代码
       1 using System;
       2 using System.Collections.Generic;
       3 using System.ComponentModel;
       4 using System.Data;
       5 using System.Drawing;
       6 using System.Text;
       7 using System.Windows.Forms;
       8 
       9 namespace test
      10 {
      11     public partial class Form2 : Form
      12     {
      13         public  event returnValueHandler returnValue;
      14 
      15         public Form2()
      16         {
      17             InitializeComponent();
      18         }
      19 
      20         private void button1_Click(object sender, EventArgs e)
      21         {
      22             ReturnValueEventArgs ee = new ReturnValueEventArgs();
      23             ee.strMessage = textBox1.Text;
      24             returnValue(sender, ee);
      25         }
      26     }
      27 }
    3. 在Form1中添加如下代码.
       1 using System;
       2 using System.Collections.Generic;
       3 using System.ComponentModel;
       4 using System.Data;
       5 using System.Drawing;
       6 using System.Text;
       7 using System.Windows.Forms;
       8 
       9 
      10 namespace test
      11 {
      12     public delegate void  returnValueHandler (object sender ,ReturnValueEventArgs e);
      13     public partial class Form1 : Form
      14     {
      15         
      16         public Form1()
      17         {
      18             InitializeComponent();
      19         }
      20 
      21         private void button1_Click(object sender, EventArgs e)
      22         {
      23             Form2 frm = new Form2();
      24             frm.Show();
      25             frm.returnValue += new returnValueHandler(frm_returnValue);
      26             
      27 
      28         }
      29 
      30         void frm_returnValue(object sender, ReturnValueEventArgs e)
      31         {
      32 
      33             label1.Text = e.strMessage;
      34             //throw new Exception("The method or operation is not implemented.");
      35         }
      36     }
      37 }

    这样就可以实现窗体之间通过委托传值.


  • 相关阅读:
    5月27 开通博客啦
    源码编译安装mysql-boost-5.7.16.tar.gz报错分析处理
    MHA实践操作
    (转)MySQL高可用方案MHA的部署和原理
    Mysql利用binlog日志恢复数据操作(转)
    生产环境mysql数据库主从恢复从数据库 -- flush tables with read lock;
    带着问题学习openstack
    openstack的网络模式(转)
    openstack 镜像初始化root登录密码
    openstack placement 组件作用理解
  • 原文地址:https://www.cnblogs.com/hbhbice/p/1717185.html
Copyright © 2011-2022 走看看