C# 委托跨窗体调用事件
作者:野牛程序员:2023-12-30 17:14:44C#阅读 2899
在C#中,要跨窗体调用事件,可以使用委托和事件的组合。以下是一个简单的例子,演示了如何在两个窗体之间触发和处理事件。
首先,在第一个窗体中定义一个委托和事件:
public delegate void MyEventHandler(object sender, EventArgs e); public partial class Form1 : Form { public event MyEventHandler MyEvent; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // 触发事件 MyEvent?.Invoke(this, EventArgs.Empty); } }
然后,在第二个窗体中,订阅第一个窗体的事件:
public partial class Form2 : Form { private Form1 form1; public Form2(Form1 form1) { InitializeComponent(); // 保存对第一个窗体的引用 this.form1 = form1; // 订阅事件 form1.MyEvent += HandleMyEvent; } private void HandleMyEvent(object sender, EventArgs e) { // 处理事件的代码 MessageBox.Show("事件在第二个窗体中被触发!"); } }
在这个例子中,第一个窗体(Form1)中有一个按钮,当按钮被点击时触发事件。第二个窗体(Form2)在构造函数中订阅了第一个窗体的事件,并定义了事件处理方法。
请注意,为了实现窗体间的通信,第二个窗体保存了对第一个窗体的引用。这样,第二个窗体就能够访问第一个窗体中的事件。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:c++选择排序算法
- 下一篇:c# 控件在父容器中居中显示