2011-08-22 79 views
0

我想爲c#中的常規按鈕控件或任何其他我定​​義的控件定義新事件。怎麼辦呢?c#中用戶定義控件或公共控件的新事件的定義#

+0

你也可能需要閱讀的答案到類似的問題:http://stackoverflow.com/questions/2464784/what-is-the-syntax-to-declare-an-event-in-c – tobsen

+0

或[這個問題](http://stackoverflow.com/問題/ 2448487 /如何對調度的事件 - 在-C/2448530#2448530)。 –

回答

0

您可以從按鈕控件的子類中定義一個新事件。

在您的課堂中使用event關鍵字,如鏈接頁面上的示例所示。

0

希望。我明白你的真正含義,導致「編程技巧」標籤混淆了我。

Here你可以找到一個簡短但很好的例子,說明如何做到這一點。

如果這不是你要求的,請更好地解釋。

+0

@謝謝,從手機寫入,沒辦法格式化答案。 – Tigran

0

如果您想爲事件處理程序提供其他信息,請首先從EventArgs派生類,或者使用現有派生類。

比你定義在你的控制事件:


    public event EventHandler&ltyourEventClass> MyEventName; 


    public event EventHandler MyEventName; 

,如果你不想讓更多的相關信息。

現在你應該定義一個私有方法來從您的代碼調用事件(我不喜歡這個公開,但如果你需要隨意更改):


    private void InvokeMyEvent(... parameter for your additional infos ...) 
    { 
     var handler = MyEventName; 
     if (handler == null) return; 

     handler(this, new MyEventArgs(...parameters...); // if you have additional parameters 
     handler(this, EventArgs.Empty); // if you don't want additional parameters 
    } 
+0

你的第二個代碼被剪掉看起來像第一個代碼。 – tobsen

+0

謝謝..總是遇到麻煩< and > – Carsten

+0

現在有一個;丟失後< ; - )應該是公共事件EventHandler < yourEventClass> MyEventName;但是我不能改變它,因爲SO只允許包含超過6個非空白字符的變化:( – tobsen