У меня есть текстовое поле в моей форме для ввода ключа в код элемента. Когда фокус текстового поля потерян, он будет искать в базе данных, чтобы проверить, существует ли код элемента или нет. Тем не менее, я получаю бесконечный цикл, когда пытаюсь потерять фокус, нажимая на другие текстовые поля.TextBox LostFocus бесконечный цикл
private void txtICode_LostFocus(object sender, RoutedEventArgs e)
{
if (txtICode.IsFocused != true)
{
if (NewData)
{
if (txtICode.Text != null)
{
if (txtICode.Text != "")
{
Item temp = new Item();
Item[] list = temp.Query(new object[] { Item.DataEnum.Item_Code }, new string[] { txtICode.Text });
if (list.Length > 0)
{
System.Windows.Forms.MessageBox.Show("This item code is already being used.", "Invalid information");
txtICode.Focus();
return;
}
}
}
}
}
}
The txtICode.IsFocused
устанавливается истина каждый раз после того, как в конце метода и цикл просто продолжается вечно. Я попытался удалить txtICode.Focus();
, но это не имеет значения. Что-то не так с моим кодом?
Я использую .Net 3.5 и WPF для моей формы.
Почему восстановление фокуса на событие 'LostFocus'? –
Удалить сообщение и проверить! –
Даже после того, как я прокомментирую сообщение, я все равно получаю бесконечный цикл. Я даже комментирую часть 'txtICode.Focus()'. – Digital