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 }

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


  • 相关阅读:
    全面了解Nginx主要应用场景
    手把手教你构建 C 语言编译器
    Docker镜像原理和最佳实践
    Docker网络深度解读
    PostgreSQL 10.0 preview 功能增强
    阿里沈询:分布式事务原理与实践
    CPU、内存、IO虚拟化关键技术及其优化探索
    原理、方法双管齐下,大神带你细解Redis内存管理和优化---场景研读
    ASP.NET 5已终结,迎来ASP.NET Core 1.0和.NET Core 1.0 转
    RabbitMQ学习系列
  • 原文地址:https://www.cnblogs.com/hbhbice/p/1717185.html
Copyright © 2011-2022 走看看