首页 文章

Windows应用程序 - 多次调用自定义事件

提问于
浏览
0

专家介绍,

在按钮单击期间,我在Windows应用程序中遇到一个问题 .

我有两个文件A.cs和B.cs

在A.cs文件中,我有一个名为“Load”的按钮,当我单击此按钮时,我需要在B.cs中触发一个函数 .

为此,我编写了一个事件处理程序 .

常用文件:

public delegate void MyEventHandler(object sender,EventArgs e,string TagId);

A.cs文件:

公共事件MyEventHandler OnTagLoad; private void btnLoad_Click(object sender,EventArgs e){if(OnTagLoad!= null){OnTagLoad(sender,e,runTimeData); }}

B.cs文件:

HostForm.OnTagLoad = new MyEventHandler(HostForm_OnTagLoad); private void HostForm_OnTagLoad(object sender,EventArgs e,string runTimeData){//做一些功能}

问题:

当我单击“加载”按钮时,事件将被触发两次,如果我再次单击该按钮,则会调用相同的事件三次,依此类推....

每当我单击“加载”按钮时,事件应仅被触发一次 . 我们怎样才能在windows窗体中实现这一点 .

感谢您的帮助 .

1 回答

  • 3

    听起来好像

    HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad);
    

    被多次召唤 . 将它移动到类中仅调用一次的位置,或者在再次添加之前删除处理程序,如下所示

    HostForm.OnTagLoad -= new MyEventHandler(HostForm_OnTagLoad);
    HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad);
    

    (我推荐第一种方法)

相关问题