我有一个TextBox
我想根据其中是否输入整数来运行几个条件。我的操作是从TextBox
存在的窗口的代码隐藏中进行的。
在LostFocus
活动中,我想做以下事情:
检查是否
string
IsNullOrEmpty
- 如果是 - 将文本设置为“默认记录”
验证输入的值是
Int
如果不是 - 显示 a
MessageBox(Ok Button)
,然后将焦点重新设置在TextBox
**这是我的LostFocus
函数的样子:
private void TextBox_LostFocus(object sender, RoutedEventArgs e) //Lost Focus
{
if (string.IsNullOrEmpty(TextBox.Text))
TextBox.Text = "Default Record";
else if (Regex.IsMatch(TextBox.Text, @"^\d+$") == false)
{
MessageBox.Show("Illegal character in list.", "Warning!", MessageBoxButton.OK, MessageBoxImage.Warning);
TextBox.Focus();
}
}
上述功能适用于测试是否string
IsNullOrEmpty
,但我遇到了else if
条件问题。当我尝试将焦点重新设置TextBox
回MessageBoxes
. 为什么会这样,我该如何解决?
更新1:
这些是附加的事件处理程序TextBox
:
//State of View at startup
private void Document_Loaded(object sender, RoutedEventArgs e)
{
//This is run because I need the TextBox to have focus at window startup
TextBox.Focusable = true;
TextBox.Focus();
}
xml:
<UserControl Loaded="Document_Loaded" ... >