1

专家们,

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

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

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

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

通用文件:

公共委托 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 形式实现这一点。

感谢你的帮助。

4

1 回答 1

3

听上去像

HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad);

被多次调用。要么将它移动到类中只调用一次的位置,要么在像这样再次添加之前删除处理程序

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

(我推荐第一种方法)

于 2013-07-29T14:00:46.310 回答