私は C# の初心者で、基本的なアプリケーションを開発しています。
テキストボックスの値が次のコードで数値かどうかを確認したい:
private void check_value(object sender)
{
TextBox tb = (TextBox)sender ;
if (!Utility.isNumeric(tb.Text)){
MessageBox.Show(tb.Text.Length.ToString());
tb.Focus();
}
}
private void Amount_1_LostFocus(object sender, RoutedEventArgs e)
{
check_value(sender);
}
テキストボックスに文字を入力すると、無限ループが発生し、実際には tb.Focus() によって LostFocus イベントが再帰的に呼び出されるようです。オブジェクトの Focus メソッドを呼び出すと、同じオブジェクトの LostFocus イベントがトリガーされる理由がわかりません。