ユーザーがアイテムコードを入力できるように、フォームにテキストボックスがあります。テキストボックスのフォーカスが失われると、データベースを調べて項目コードが存在するかどうかを確認します。ただし、他のテキストボックスをクリックしてフォーカスを失わせようとすると、無限ループが発生します。
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;
}
}
}
}
}
}
メソッドのtxtICode.IsFocused
終了後は毎回 true に設定され、ループは永遠に続きます。削除してみtxtICode.Focus();
ましたが変わりません。私のコードに何か問題がありますか?
フォームに .Net 3.5 と WPF を使用しています。