我是 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 事件。