我的第一篇文章,道歉,如果這已被回答 - 我已經搜索和搜索,但沒有發現任何具體使用Custom EventArgs與現有SystemEvents。是否可以使用SystemEvents自定義EventArgs?
我想利用SystemEvents.PowerModeChanged類型的事件,但想用我自己的自定義EventArgs而不是標準的PowerModeChangedEventArgs。我的方法是創建一個名爲CustomPowerModeChangedEventArgs的類,該類繼承自PowerModeChangedEventArgs並使用它們,但我不知道如何告訴PowerModeChangedEventHandler使用這些新的CustomEvent參數。我的代碼如下:
的問題是與PowerModeEventChangedHandler不接受該方法與CustomArgs PowerModeChanged。如果這是一個普通的事件處理程序,我可以這樣定義的ARGS ...
public event EventHandler<CustomPowerModeChangedEventArgs> PowerModeCHanged;
...但我無法捉摸如何實現用非一般的事件處理程序相似。我懷疑可能使用lambda表達式將新的自定義參數發送給處理程序,但我確實不確定 - 也許我需要定義一個全新的EventChangedHandler?任何建議將不勝感激。
這很有道理,謝謝Jon Skeet。這是否意味着爲了讓某些系統屬性的自定義參數更改觸發事件,我需要編寫一個新類,或者將兩個事件與一個自定義事件結合使用以預定義PowerModeChanged事件? – Chi
@Chi:是的 - 基本上從系統的角度考慮它。它知道如何引發事件並構建自己的事件參數。只有*你的*代碼將創建* your *事件參數的實例。 –
謝謝Jon Skeet,非常感謝。完美地解釋,我現在覺得我對這個問題有一些清晰。感謝您花時間傳授您的知識,並感謝天堂的stackoverflow.com的存在。 – Chi