当前位置:首页C# > 正文

C# 委托跨窗体调用事件

作者:野牛程序员:2023-12-30 17:14:44C#阅读 2151

在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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击