c#中在一个窗体中触发另一个窗体的事件
创建两个窗体,分别为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#中在一个窗体中触发另一个窗体的事件相关推荐
- vue中在一个函数中调用另外一个函数
vue中在一个函数中调用另外一个函数 this.$options.methods.函数名.bind(this)();
- java中 在一个异常处理中什么语句块是可多个的
java中 在一个异常处理中什么语句块是可多个的 参考文章: (1)java中 在一个异常处理中什么语句块是可多个的 (2)https://www.cnblogs.com/zhuyeshen/p/10 ...
- jq实现点击一个按钮,触发另一个点击事件(点击按钮触发另一个按钮的点击事件)
jq实现点击一个按钮,触发另一个点击事件 $("#a").click(function(){$("#b").trigger('click');}) 实现点击完i ...
- python中在一个字符串中查找另一个字符串。实现一个字符串的find函数。
1.在一个字符串中查找另一个字符串 2.找到了返回第一次出现的位置 3.没找到返回-1 4.参数s1为源字符串,参数s2为要查找的字符串 def index_of_str(s1, s2):n1=len ...
- 如果关闭一个窗体后激活另一个窗体的事件或方法
1 在被调用窗体(fmain)中将所要调用的方法设为public 2 修改调用窗体(f)的构造函数 private frmMain fmain; public fref(frmMain fMain) ...
- 一个程序通过窗体句柄控制另一个窗体
接下来,我们来演示不同程序中,怎么通过窗体句柄控制其它程序窗体. 演示的例子是:控制系统的记事本窗体,先移动,再最大化,最后关闭 要求:桌面上有一个记事本,名称是:测试文本.txt - 记事本,保证是 ...
- Vue 组件事件触发另一个组件的事件
此方法与Prop类似,区别在于Prop用于子父之间传值,而当前所介绍的方法为任意组件可相互调用定义的属性. 我用此方法需要解决的问题是当我点击一个按钮,需要改变另一个组件的样式,因为我做的是主题切换, ...
- Android中在一个应用中去启动另外一个应用
关注微信号:javalearns 随时随地学Java 或扫一扫 随时随地学Java Android中 一个应用启动另外一个应用一般有2种情况,被启动应用的包名已知和未知两种情况: *情况一 == ...
- html网页中在一个表格中去除部分表格线
关键点:先合并可合并的单元格要将定义的style样式放在td(单元格)中,不能放在tr(行)中否则表格线不能完全隐去(需要显示表格线的可将style样式放在tr中) 一.head中的部份样式示例(可根 ...
最新文章
- Python使用matplotlib可视化散点图、使用seaborn中的lmplot函数使用多子图可视化不同分组的散点图最优拟合线性回归曲线
- 解决idea中maven项目无法读取src/main/java目录下面的配置文件问题
- 精通python设计模式-浅谈Python设计模式 - 原型模式
- JavaScript中使Promise模式进行异步编程
- php pdo mysql query_PHP+MYSQL中使用PDO的query方法
- python torch exp_学习Pytorch过程遇到的坑(持续更新中)
- jQuery进阶部分笔记
- 为什么先交钱后用电_车主快看,有上坡辅助,先抬离合后加油为什么不是熄火就是加空油...
- 三目运算符c语言吗,看看三目运算符?:到底是怎么回事
- fpga与三八译码器(BASYS3 VIVADO18)
- 厉害了,2019-2020中国互联网趋势报告
- Servlet期末复习二
- 《高质量程序设计指南——C++/C》重印啦!
- php公众号多域名授权,多个网站用一个微信公众号授权域名的坑
- 只要7步,就能将任何魔方6面还原(留着以后教孩子玩
- 贝叶斯法则与虚假阳性的病例
- 狂飙高启兰好飒,你看狂飙了吗?
- C#实战之CAD二次开发003:插入文字和插入图块
- 浏览器网站请求全解析
- 自动增益控制电路(AGC)