目前我正在使用this方法突出显示TextBox中的文本,但它有时会起作用。
此代码必须验证输入的文本中是否包含空格。如果文本中有空格,则应警告用户,然后必须突出显示TextBox中的文本:
if (textBox.Text.Contains(" "))
{
MessageBox.Show("Sorry, the value entered must not contain any spaces.", "Please enter a valid value", MessageBoxButton.OK, MessageBoxImage.Error);
//Highlights incorrect text
textBox.SelectionStart = 0;
textBox.SelectionLength = textBox.Text.Length;
}
为什么这种方法不能一直为我工作,我该怎么做才能解决它?
答案 0 :(得分:0)
当您选择当前时刻没有焦点的textBox长度时,可能会出现问题。
您可以尝试添加焦点检查吗?
if (textBox.Text.Contains(" "))
{
MessageBox.Show("Sorry, the value entered must not contain any spaces.", "Please enter a valid value", MessageBoxButton.OK, MessageBoxImage.Error);
if(!textBox.Focused)
{
textBox.Focus();
}
//Highlights incorrect text
textBox.SelectionStart = 0;
textBox.SelectionLength = textBox.Text.Length;
}
也可以使用textBox.SelectAll():
代替当前解决方案if (textBox.Text.Contains(" "))
{
textBox.SelectAll();
MessageBox.Show("Sorry, the value entered must not contain any spaces.", "Please enter a valid value", MessageBoxButton.OK, MessageBoxImage.Error);
}