の新しいバージョンを実装したいと思います。それをTextBox
呼び出して、 3 回のテキスト変更ごとにのみイベントを発生させます。FunkyTextBox
TextChanged
このために別のイベントを発生させたいだけの場合は、それFunkyTextChanged
を と呼びましょう。実装は簡単です。
class FunkyTextBox : TextBox
{
int counter = 0;
int MAX_CHANGES = 3;
public event EventHandler FunkyTextChanged;
public FunkyTextBox()
{
this.TextChanged += (s, e) =>
{
if (++counter < MAX_CHANGES)
return;
counter = 0;
if (FunkyTextChanged != null)
FunkyTextChanged(this, null);
};
}
}
しかし、このアプローチには 1 つの欠点があります。ユーザーは、単一の変更後に発生する親のバージョンである を使用することを想定し、イベントTextChanged
をサブスクライブしようとは思わないでしょう。FunkyTextChanged
TextChanged
これにイベントを使用することは可能ですか?親の TextChnaged をユーザーから隠しFunkyTextBox
て、それを独自のものに置き換えるにはどうすればよいですか?