最終更新:2015-04-28 (火) 03:10:54 (3286d)
C♯/イベントハンドラ
イベントを処理するメソッド
なんとかEventHandler
- イベントに使われるデリゲート型
- イベントの引数の型などを定義。
EventHandler
- イベント データを持たないイベントを処理するメソッドを表します。
public delegate void EventHandler(object sender, EventArgs e)
その他
- パラメータに情報を持たせたいときはEventArgsを継承したクラスを定義して新たなハンドラを定義する
- AddingNewEventHandler?(sender, AddingNewEventArgs? e)
- AsyncCompletedEventHandler?(sender, e)
- CancelEventHandler?(sender, e)
- CollectionChangeEventHandler?(sender, e)
- DoWorkEventHandler?(sender, e)
- HandledEventHandler?(sender, e)
- ListChangedEventHandler?(sender, e)
- ProgressChangedEventHandler?(sender, e)
- PropertyChangedEventHandler(sender, e)
- RefreshEventHandler?(sender, e)
- RunWorkerCompletedEventHandler?(sender, RunWorkerCompletedEventArgs? e)
ジェネリックバージョン
- デリゲートEventHandler<TEventArgs>を使ってもイベントハンドラを定義できる。
[SerializableAttribute] public delegate void EventHandler<TEventArgs>( Object sender, TEventArgs e ) where TEventArgs : EventArgs
- 例
class HogeClass { //EventHandler<T>を使ってイベントを宣言 //public event デリゲート型 イベント; public event EventHandler<CustomEventArgs> RaiseCustomEvent; }
メモ
- イベントハンドラ+=関数;とするとイベントハンドラのデリゲートに関数が追加される