いくつかのフォームがあり、それらには基本的に同一のイベント関数がいくつかあります
「共有」クラスを実装し、イベントハンドラーをその関数にリンクしようとしましたが、関数に必要な保護レベルを与えると、非静的であると不平を言い、静的にする必要があります。
私は静的関数のファンではないので、質問してください。それを行うより良い方法はありますか?
(上記が不明な場合: 私はこれを行いたい: .NET で複数のボタンに対して単一のイベント ハンドラーを設定しますか?ただし、複数のコントロールではなく複数のフォームを使用します)
編集:詳細情報のリクエストに従って:
私はコードの重複についてかなりOCDであり、私のプログラムには同時にアクティブ/非表示の複数のフォームがあり、「x」が押されたときにプログラム全体を閉じたいのは明らかです。
class Shared
{
public static void FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
public static void FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("Are you sure you want to exit?", "Confirm exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) {
e.Cancel = true;
}
}
}
非常に単純な関数、私は知っていますが、重複は好きではありません:P
上記の「public static」の「構成」は正常に機能しますが、「より良い方法」があるかどうか疑問に思いました (tm)