変更イベントを発生させる側
// ステータス管理クラス
public class StatusManager
{
// ステータス変更イベント
public event EventHandler StatusChanged;
// ステータス
private int _status;
// [Property]ステータス
public int Status
{
get { return this._status; }
set
{
// ステータスに変更があれば、イベントを発生させる
if (this._status != value)
{
this._status = value;
if (this.StatusChanged != null)
{
this.StatusChanged(this, new EventArgs());
}
}
}
}
}
変更イベントの発生により、実際に処理する側
// メイン画面クラス
public class MainForm
{
// ステータス管理クラス
private StatusManager _manager;
// コンストラクタ
public TeMainFormst(StatusManager manager)
{
// インスタンスの格納
_manager = manager;
// ステータス変更イベントの追加
_manager.StatusChanged += this.UpdateUI;
}
// フォームクロージング
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
// ステータス変更イベントの削除
if (_manager != null)
{
_manager.StatusChanged -= this.UpdateUI;
}
}
// ステータス管理クラスのステータス変更イベントが発生した時に処理するための関数
private void UpdateUI(object sender, EventArgs args)
{
// ToDo : 以下に処理を記述する
}
}