2011-09-15 160 views
2

我必須錯過一些顯而易見的東西 - 我是.NET的新手 - 多年來一直在C++/MFC中開發。如何調用/調用按鈕單擊事件處理程序形成另一個處理程序? (c#)

在按鈕點擊的事件處理程序中,我想再重新使用另一個事件處理程序/點擊。但是,我似乎無法弄清楚如何做到這一點。

可能會造成麻煩的位是我想要「激發」的第二個項目的處理程序不在同一個窗體/上下文中。

看來,我應該能夠調用的方法...

但我似乎並沒有能夠做到這一點。

這在緊湊的框架/贏手機

回答

3

你需要做以下之一:

  • 提供訪問處理的含類實例(即引用該對象)
  • 充分利用處理器的靜態所以任何實例都可以直接引用
  • 將異常處理程序在其他一些全局可用對象(靜態,單等),這樣既消費者可以用它
  • 使用提供事件彙總的框架,所以你不必擔心這樣的事情
1

我想一個更好的解決辦法是讓原始事件處理程序中完成的工作被包含在函數中重構你的代碼。

然後原始處理程序和新處理程序都調用相同的函數。

+0

雖然這可能是有條件的。在事件1提出後,他總是想要舉辦第二場比賽可能並非如此。 – skaz

+0

這兩者不必一起調用 - 其中一個,兩者都不可以在任何適當條件下都無權調用該函數。或者我錯過了什麼? – Widor

2

您如何將通用代碼分解爲私有方法?然後你可以從這兩個處理程序調用該方法。

0

在事件處理函數1中,只提出事件處理函數2「正在偵聽」的事件。所以在事件處理程序1中,放入OnEvent()。請注意,事件處理程序2必須已經連接起來以收聽事件。

如果您展示更多代碼,我可以更具體地說話,但這可能已足夠。

0

我的無知。我只是不知道其他處理程序。這是一個簡單的問題要解決 - 我只是讓處理程序對處理第二個事件的對象/窗體可見,並且很容易觸發其他事件。

相關問題