相关疑难解决方法(0)

确定绑定到事件的事件处理程序列表

我有一个不会关闭的WinForms表单.在OnFormClosing中,e.Cancel设置为true.我猜我的应用程序中的某些对象已绑定到Closing或FormClosing事件,并阻止关闭.为了找到答案,我想确定哪些代表与其中一个事件绑定.

有没有办法确定绑定到事件的处理程序列表?理想情况下,我会通过Visual Studio调试器执行此操作,但可以在应用程序中编写代码以在必要时查找处理程序.理解一个事件就像一个隐藏的私有字段,我已经通过调试器导航到我的表单的"Windows.Forms.Form"祖先的"非公共字段",但无济于事.

c# debugging events visual-studio-2008

30
推荐指数
1
解决办法
3万
查看次数

我怎么知道.net事件是否已被处理?

我写了一些代码来处理事件,如下所示:

AddHandler myObject.myEvent, AddressOf myFunction
Run Code Online (Sandbox Code Playgroud)

似乎一切都在工作,但是当我运行调试器时,我发现通常myFunction每次都会运行几次myObject.myEvent.我发现我已经允许代码添加事件处理程序多次运行,从而导致此行为.

有没有办法可以做这样的事情?

If myObject.myEvent is not handled Then
  AddHandler myObject.myEvent, AddressOf myFunction
End If
Run Code Online (Sandbox Code Playgroud)

.net vb.net events event-handling

11
推荐指数
3
解决办法
1万
查看次数