私はButtonのサブクラスを作成しており、OnClickなどのイベントにカスタム機能を追加したいと考えています。それはもっと望ましい方法ですか?イベントハンドラの使用とイベント発生メソッドのオーバーライド
protected override void OnClick(EventArgs e)
{
base.OnClick(e);
doStuff();
}
または私が代わりにデザイナーを通じて私のボタンのサブクラスで定義されたイベントハンドラにOnClickイベントをリンクする必要があります私は、クリック時に上書きしますか?
class ButtonSubclass
{
public ButtonSubclass() : base()
{
InitializeComponent();
}
private void InitializeComponent()
{
this.Click += new System.EventHandler(this.ButtonSubclass_Click);
}
}
編集:私はマイナーな視覚的な変更を追加した(つまりとして初歩的なスキンを通過してもよい)が、変化のほとんどは、私が再実装(コピー&ペースト)したくないイベントハンドラ内にあるすべての上それを再利用するフォーム。
この文脈で "専門化"を定義できますか? – MasterMastic
@Ken:それはいくつかの真に*異なる*方法で動作します。すべてのハンドラを逆の順序で実行します。 「常に特定のハンドラを持つボタン」だけではありません。 –
意味があります、ありがとうJon! :) – MasterMastic