我创建了一个自定义事件并为其分配了一个处理程序。
引发事件的行被称为一次,但处理程序被称为
两次,为什么会这样?
请帮帮忙?
答案 0 :(得分:0)
如果事件被附加了两次,那么当你举起事件时,事件处理程序将被调用两次。例如
public void MyEventHandler(object sender, EventArgs e) {
}
...
someObject.SomeEvent += MyEventHandler;
someObject.SomeEvent += MyEventHandler;
...
someObject.RaiseSomeEvent();
这将导致MyEventHandler被调用两次。您对该事件仅被附加一次有多确定?
答案 1 :(得分:0)
您可能希望考虑其他一些操作可以触发您处理的事件,例如将数据绑定到组合框时,它会自动引发OnSelectionChange事件。
因此,您可以在OnLoad中将数据绑定到组合,以便引发事件,并在OnInit上为组合分配一些默认值,从而再次引发事件。
如果没有您的一些代码,这只会帮助您意识到此问题可能以多种方式发生。
让我们看看代码吧! :)