博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中跨窗体操作(1)--事件
阅读量:6548 次
发布时间:2019-06-24

本文共 2182 字,大约阅读时间需要 7 分钟。

在应用C#过程中,经常会出现通过“窗口2”来处理“窗口1”上的控件和显示内容等。可以通过事件的处理方式来完成,具体步骤如下:

1、在“窗体2”中声明事件

   public delegate void Change();

        public event Change myChangeevent;

2、编写按钮单击事件

      myChangeevent();//执行事件

3、在“窗体1”中声明“窗体2”的事件,并编写事件处理函数来处理“窗体1”的控件和内容

  按钮单击函数  

     Form2 f = new Form2();

            f.Show();
            f.myChangeevent += new Form2.Change(f_myChangeevent);

  事件处理函数

    void f_myChangeevent()

        {
            //throw new NotImplementedException();
            textBox1.Text = "事件执行成功";
        }

完整的程序代码:

  Form1:

1 using System;  2 using System.Collections.Generic;  3 using System.ComponentModel;  4 using System.Data;  5 using System.Drawing;  6 using System.Linq;  7 using System.Text;  8 using System.Windows.Forms;  9 10 namespace Test跨窗体 11 {
12 public partial class Form1 : Form 13 {
14 public Form1() 15 {
16 InitializeComponent(); 17 } 18 19 private void button1_Click(object sender, EventArgs e) 20 {
21 Form2 f = new Form2(); 22 f.Show(); 23 f.myChangeevent += new Form2.Change(f_myChangeevent); 24 }void f_myChangeevent() 25 {
26 //throw new NotImplementedException(); 27 textBox1.Text = "事件执行成功"; 28 } 29 } 30 }

Form2:

1 using System;  2 using System.Collections.Generic;  3 using System.ComponentModel;  4 using System.Data;  5 using System.Drawing;  6 using System.Linq;  7 using System.Text;  8 using System.Windows.Forms;  9 10 namespace Test跨窗体 11 {
12 public partial class Form2 : Form 13 {
14 public Form2() 15 {
16 InitializeComponent(); 17 } 18 public delegate void Change(); 19 public event Change myChangeevent; 20 public Change myChange; 21 private void button1_Click(object sender, EventArgs e) 22 {
23 //myChange = new Change(Print); 24 //this.Invoke(myChange);//执行委托 25 myChangeevent();//执行事件 26 } 27 private void Print() 28 {
29 button1.Text = "委托执行"; 30 } 31 } 32 }

委托和事件的最大区别在于:委托可以在任意时刻调用处理函数,而事件只能在固定的出发了当前事件时才能调用。

转载于:https://www.cnblogs.com/suifengpiaoshan/archive/2012/02/29/2373161.html

你可能感兴趣的文章
java中生成唯一的ID
查看>>
Webpack 4.X 从入门到精通 - loader(五)
查看>>
系统服务的控制
查看>>
分布式事务系列(开篇)提出疑问和研究过程
查看>>
AngularJS
查看>>
各区块链底层数据存储分析(二)
查看>>
js中获取时间new date()的用法
查看>>
Java 集合深入理解(8):AbstractSequentialList
查看>>
MySQL主从复制与读写分离
查看>>
动态规划——数字三角形
查看>>
管道符和作业控制 、 shell变量 、环境变量配置文件
查看>>
闭包的循环引用 与 解决(三种方法)
查看>>
GCD 与 NSOperation 的对比
查看>>
golang碎片整理之 fmt.Scan
查看>>
nodejs渐入佳境[31]-mongodb+express+middleware绑定用户权限2
查看>>
DHCP常用查看命令
查看>>
详解某大厂区块链服务整体架构
查看>>
伪共享(False Sharing) - 未完待续
查看>>
基于Java 生产者消费者模式(详细分析)
查看>>
OCP 12c最新考试原题及答案(071-5)
查看>>