C# クラスにカスタム・イベントの実装
2009/11/10 18:19Update
クラスにカスタム・イベントの実装手順
まずButtonクラスの標準イベントClickの使い方から見てみます。
例えば、ボタンのClickイベントをあるメソッドで処理する場合、
以下のように記述します。
自前のクラスにイベントを実装するには、どうしたらいいですか?
早速調べてみました、Visual Studio デベロッパー センターMSDNに以下の記事を発見!
方法 :
クラスにイベントを実装する
C#、Visual Basicなどの言語でクラスにイベントを実装する方法について説明しています!
以下は、C#の場合のイベント実装について簡単に説明します。
※Visual Basicも同じような感じで
例:
例:
例(あるボタン押下時):
例(ビジネス処理時):
これで、カスタムイベントの定義は完了です。
イベントが発生した時、何のメソッドで処理させるかを定義します。
例:
.
例えば、ボタンのClickイベントをあるメソッドで処理する場合、
以下のように記述します。
//ボタンの定義
private System.Windows.Forms.Button buttonExit;
...
//Clickイベント処理メソッド 宣言
//ClickはButtonのイベントです
this.buttonExit.Click += new System.EventHandler(this.buttonExit_Click);
...
//Clickイベント処理メソッド 定義
private void buttonExit_Click(object sender, EventArgs e)
{
//イベント処理ここで
}
自前のクラスにイベントを実装するには、どうしたらいいですか?
早速調べてみました、Visual Studio デベロッパー センターMSDNに以下の記事を発見!
方法 :
クラスにイベントを実装する
C#、Visual Basicなどの言語でクラスにイベントを実装する方法について説明しています!
以下は、C#の場合のイベント実装について簡単に説明します。
※Visual Basicも同じような感じで
1)カスタムイベントの定義
例:
public event EventHandler MyEventHappen;
2)Onイベント名という名前のメソッドの実装
例:
protected virtual void OnMyEventHappen(EventArgs e)
{
if (MyEventHappen != null)
MyEventHappen(this, e);
}
3)カスタム イベントの発生
例(あるボタン押下時):
protected void buttonAdd_Click(object sender, EventArgs e)
{
OnMyEventHappen(new EventArgs());
}
例(ビジネス処理時):
protected void buttonAdd_Click(object sender, EventArgs e)
{
if (... == 0)
OnMyEventHappen(new EventArgs());
}
これで、カスタムイベントの定義は完了です。
4)カスタムイベントの処理
イベントが発生した時、何のメソッドで処理させるかを定義します。
例:
MyClass myClass = ...;
...
myClass.MyEventHappen += new System.EventHandler(this.someFunction);
private void someFunction(object sender, EventArgs e)
{
MyClass myClass = (MyClass)sender;
...
}
.
Sponsored Link
- Relative Articles
- JLCA で JavaコードをC#に変換する - (2009/10/14 15:28)
- Console.Out.WriteLineでコンソールで出力する - (2009/10/15 16:09)
- typeofによる 型(System.Type)の取得 - (2009/10/15 16:58)
- C#クラスの継承と親コントラクタの呼び出し方法 一例 - (2009/10/19 18:12)
- サンプルから学ぶ C# クラスの定義方法 - (2009/10/21 16:36)
- C#言語でのThreadLocal実装方法 - (2009/10/23 17:18)
- カスタムユーザコンポーネントWindowsControlLibraryの作成とその利用方法 - (2009/11/09 13:39)
- C# オブジェクトの型の判定 - (2009/11/11 16:22)
- C# ジェネリック(generic)実装例 - (2009/11/24 18:37)
- C#イベントログの汎用実装 一例 - (2009/12/02 17:49)