创建两个窗体,分别为form1,form2,在form1中添加控件textBox1和button1,创建一个form2的对象Form2 b = null;
在form2中添加button1,定义委托和事件
 //定义委托
        public delegate void MyDelegate();
        //定义事件
        public event MyDelegate MyEvent;
给form2中的button1添加消息相应函数并做修改  
     private void button1_Click(object sender, EventArgs e)
        {
            if (MyEvent != null)
                MyEvent();//引发事件
            this.Close();
        }
在form1的代码中添加函数
     void b_MyEvent()
            {
                this.textBox1.Text += "已单击b窗体按钮\r\n";
            }
修改form1的构造函数
     public Form1()
            {
                InitializeComponent();
                b = new Form2();//实例化b窗体
                b.MyEvent += new Form2.MyDelegate(b_MyEvent);//监听b窗体事件
            }
为form1中的button1添加消息响应函数
    private void button1_Click(object sender, EventArgs e)
            {
                b.ShowDialog();

}
这样当单击form1中的按钮时会弹出form2,当单击form2中的按钮时,form1中的textbox1会显示“已单击b窗体按钮”。
具体代码如下(vs 2005实现):

form1代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace form1
{

public partial class Form1 : Form
        {
            Form2 b = null;

public Form1()
            {
                InitializeComponent();

b = new Form2();//实例化b窗体
                b.MyEvent += new Form2.MyDelegate(b_MyEvent);//监听b窗体事件
            }

void b_MyEvent()
            {
                this.textBox1.Text += "已单击b窗体按钮\r\n";
            }

private void button1_Click(object sender, EventArgs e)
            {
                b.ShowDialog();

}
}
}

form2代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace form1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }
        //定义委托
        public delegate void MyDelegate();
        //定义事件
        public event MyDelegate MyEvent;

private void button1_Click(object sender, EventArgs e)
        {
            if (MyEvent != null)
                MyEvent();//引发事件
            this.Close();
        }

}
}

文章来源:http://blog.163.com/liujiyun123@126/blog/static/4459677620108295850128/

c#中在一个窗体中触发另一个窗体的事件相关推荐

  1. vue中在一个函数中调用另外一个函数

    vue中在一个函数中调用另外一个函数 this.$options.methods.函数名.bind(this)();

  2. java中 在一个异常处理中什么语句块是可多个的

    java中 在一个异常处理中什么语句块是可多个的 参考文章: (1)java中 在一个异常处理中什么语句块是可多个的 (2)https://www.cnblogs.com/zhuyeshen/p/10 ...

  3. jq实现点击一个按钮,触发另一个点击事件(点击按钮触发另一个按钮的点击事件)

    jq实现点击一个按钮,触发另一个点击事件 $("#a").click(function(){$("#b").trigger('click');}) 实现点击完i ...

  4. python中在一个字符串中查找另一个字符串。实现一个字符串的find函数。

    1.在一个字符串中查找另一个字符串 2.找到了返回第一次出现的位置 3.没找到返回-1 4.参数s1为源字符串,参数s2为要查找的字符串 def index_of_str(s1, s2):n1=len ...

  5. 如果关闭一个窗体后激活另一个窗体的事件或方法

    1 在被调用窗体(fmain)中将所要调用的方法设为public 2 修改调用窗体(f)的构造函数 private frmMain fmain; public fref(frmMain fMain) ...

  6. 一个程序通过窗体句柄控制另一个窗体

    接下来,我们来演示不同程序中,怎么通过窗体句柄控制其它程序窗体. 演示的例子是:控制系统的记事本窗体,先移动,再最大化,最后关闭 要求:桌面上有一个记事本,名称是:测试文本.txt - 记事本,保证是 ...

  7. Vue 组件事件触发另一个组件的事件

    此方法与Prop类似,区别在于Prop用于子父之间传值,而当前所介绍的方法为任意组件可相互调用定义的属性. 我用此方法需要解决的问题是当我点击一个按钮,需要改变另一个组件的样式,因为我做的是主题切换, ...

  8. Android中在一个应用中去启动另外一个应用

    关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java Android中 一个应用启动另外一个应用一般有2种情况,被启动应用的包名已知和未知两种情况:  *情况一 == ...

  9. html网页中在一个表格中去除部分表格线

    关键点:先合并可合并的单元格要将定义的style样式放在td(单元格)中,不能放在tr(行)中否则表格线不能完全隐去(需要显示表格线的可将style样式放在tr中) 一.head中的部份样式示例(可根 ...

最新文章

  1. Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
  2. 解决idea中maven项目无法读取src/main/java目录下面的配置文件问题
  3. 精通python设计模式-浅谈Python设计模式 - 原型模式
  4. JavaScript中使Promise模式进行异步编程
  5. php pdo mysql query_PHP+MYSQL中使用PDO的query方法
  6. python torch exp_学习Pytorch过程遇到的坑(持续更新中)
  7. jQuery进阶部分笔记
  8. 为什么先交钱后用电_车主快看,有上坡辅助,先抬离合后加油为什么不是熄火就是加空油...
  9. 三目运算符c语言吗,看看三目运算符?:到底是怎么回事
  10. fpga与三八译码器(BASYS3 VIVADO18)
  11. 厉害了,2019-2020中国互联网趋势报告
  12. Servlet期末复习二
  13. 《高质量程序设计指南——C++/C》重印啦!
  14. php公众号多域名授权,多个网站用一个微信公众号授权域名的坑
  15. 只要7步,就能将任何魔方6面还原(留着以后教孩子玩
  16. 贝叶斯法则与虚假阳性的病例
  17. 狂飙高启兰好飒,你看狂飙了吗?
  18. C#实战之CAD二次开发003:插入文字和插入图块
  19. 浏览器网站请求全解析
  20. 自动增益控制电路(AGC)

热门文章

  1. 10月15python
  2. 关于ViewGroup和View的事件分发
  3. PHP curl 中文gbk转utf8
  4. mysql自动备份脚本下载+简单解读
  5. 【创建型】工厂模式(Factory Pattern)详解
  6. 符合SEO标准的div+css页面参考
  7. 启发式和元启发式的区别
  8. JDK9-17开发常用的新特性
  9. Jmeter源码分析(二)
  10. Redis之父Antirez谈副业与主业