の新しいバージョンを実装したいと思います。それをTextBox呼び出して、 3 回のテキスト変更ごとにのみイベントを発生させます。FunkyTextBoxTextChanged
このために別のイベントを発生させたいだけの場合は、それ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て、それを独自のものに置き換えるにはどうすればよいですか?