专家,
在按钮点击期间,我在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形式实现这一点。
感谢您的帮助。
答案 0 :(得分:3)
听起来像
HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad);
被多次调用。将其移动到类中仅调用一次的位置,或者在再次添加之前删除处理程序,如此
HostForm.OnTagLoad -= new MyEventHandler(HostForm_OnTagLoad);
HostForm.OnTagLoad += new MyEventHandler(HostForm_OnTagLoad);
(我推荐第一种方法)