簡體   English   中英

如何在引發其他事件時舉起活動?

[英]How to raise an event when another event is raised?

我有一個應用程序來處理另一個正在運行的應用程序的OnQuit事件。 我想在處理OnQuit事件時引發一個額外的(自定義)事件。 我怎么能實現這樣的活動?

我的OnQuit處理程序是這樣的:

    private void StkQuit()
    {
        _stkApplicationUi.OnQuit -= StkQuit;
        Marshal.FinalReleaseComObject(_stkApplicationUi);
        Application.Exit();
    }

我需要附加事件的原因是我可以告訴我的View層應用程序已退出。 如果這不是正確的方法,那會更好嗎?

WulfgarPro

我通常會在我的視圖界面中有一個事件,如下所示:

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();
    }
}

希望有所幫助!!

在OnQuit注冊后,只需使用_stkApplication注冊此附加事件。

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

其中AddlQuitHandler是自定義事件的處理程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM