VB.从其他类中添加取消事件处理程序



我正试图找出一种方法来使用事件,处理程序-从异步操作中取消操作(进度条)。

我有一个类ProgressBar,它显示操作的进度。它有一个取消按钮(它是Friend WithEvents,通常是生成的,并且有一个Private subbuttoncancel_click)。没什么特别的。

取消设置了一个公共的CancelButtonHasBeenPressed。

我希望能够在另一个类中对按下取消键作出反应。

我读到添加处理程序来响应事件,并在操作结束时删除处理程序,这是我应该做的。

类似:

Public Function Mine(ByRef myProgress As ThatProgressWindow)
  ' some setup  
  AddHandler CancelEvent, AddressOf myProgress.ButtonCancel_Click
  ' create and call workers
  RemoveHandler CancelEvent, AddressOf myProgress.ButtonCancel_Click
End Function
Public Event CancelEvent()
Private Function worker(ByVal state As Object) As Object
  ' do work
  If ' how do I check for the event ? Then drop everything and run
End Function

上面代码/伪代码的问题:

1)在AddHandler中,我应该添加一个存在的事件,连接到实际取消的东西-但是在ProgressBar中没有任何东西,这样做-我如何添加取消?我只有一个取消按钮…所以我必须把button_click设为Public这可能是错误的。

不知何故,我认为用户按下Cancel会触发该事件…这不是真的吗?在这方面,我真的是新手,而在所有的例子中,网络似乎都假设,看这些例子的人已经是专家了。

2)如何检查事件是否被触发?

当我试着输入"如果",后面跟着一个事件名称,以任何形式,智能感知一直告诉我这是错误的。

请帮我开始吧!

谢谢。

你考虑过使用BackgroundWorker吗?它支持进度事件和取消。

顺便说一句,不要在Mine函数中使用ByRef。它不是必需的,如果维护你的代码的人没有意识到参数是ByRef,可能会导致微妙的错误。

相关内容

  • 没有找到相关文章

最新更新