[英]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.