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 }

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


  • 相关阅读:
    Scrapy中的反反爬、logging设置、Request参数及POST请求
    scrapy的CrawlSpider类
    利用scrapy爬取腾讯的招聘信息
    scrapy知识补充--scrapy shell 及Spider
    scrapy的一个简单小项目
    scrapy框架介绍及安装
    并发编程--greenlet与gevent
    并发编程--协程
    并发编程--进程池与线程池-练习3
    并发编程--进程池与线程池-练习2
  • 原文地址:https://www.cnblogs.com/hbhbice/p/1717185.html
Copyright © 2011-2022 走看看