当另一个事件被触发时如何引发事件?

5

我有一个应用程序,处理另一个正在运行的应用程序的OnQuit事件。 当处理此OnQuit事件时,如何引发其他(自定义)事件。

我的OnQuit处理程序:


```vb Private Sub MyApp_OnQuit() ' Handle OnQuit event
' Raise custom event here End Sub ```
private void StkQuit()
{
   _stkApplicationUi.OnQuit -= StkQuit;
   Marshal.FinalReleaseComObject(_stkApplicationUi);
   Application.Exit();
}

你创建任何其他事件的方式相同。 - SLaks
2个回答

2

通常我会在我的视图界面中有一个事件,如下所示:

public interface ITestView
    {
        event EventHandler OnSomeEvent;
    }

然后,我会从演示文稿构造函数中连接这些事件:
public class TestPresenter : Presenter
{
    ITestView _view;

    public TestPresenter(ITestView view)
    {
        _view.OnSomeEvent += new EventHandler(_view_OnSomeEvent);
    }

    void _view_OnSomeEvent(object sender, EventArgs e)
    {
        //code that will run when your StkQuit method is executed
    }
}

在你的aspx代码后台:

public partial class Test: ITestView
{
     public event EventHandler OnSomeEvent;
     public event EventHandler OnAnotherEvent;

    private void StkQuit()
    {
        _stkApplicationUi.OnQuit -= StkQuit;
        Marshal.FinalReleaseComObject(_stkApplicationUi);
        if (this.OnSomeEvent != null)
        {
            this.OnSomeEvent(this, EventArgs.Empty);
        }
        Application.Exit();
    }
}

希望这能帮到您!

0

在注册OnQuit之后,只需将此附加事件与_stkApplication一起注册即可。

_stkApplicationUi.OnQuit += StkQuit;
_stkApplicationUi.OnQuitAdditional += AddlQuitHandler;

AddlQuitHandler是自定义事件的处理程序


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接