0

フォームに 2 つの入力ボックスがあります。ユーザーがデータを入力した場合、Enter キーを押して正しいかどうかを確認できます。それ以外の場合は、メッセージ ボックスにエラーが表示されます。今、私は小さな問題を抱えています。メッセージボックスが表示され、ユーザーが Enter キーを押すと、メッセージボックスが消え、すぐに別のメッセージボックスが表示されます。私は姿を消し、ユーザーが自分のデータを変更できるようにしたかったのです。どうすれば修正できますか?私はその方法でそれを修正しようとしました:私は非表示のテキストボックスを追加しました.ユーザーがEnterキーを押すと、このテキストボックスがフォーカスを取得し、エラーメッセージボックスが表示され、最終的に送信者がフォーカスを取得すると. コード:

private void login(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter)
    {
        focus.Focus();
        if (password.Password == "" || account.Text == "")
        {
            MessageBoxResult result = MessageBox.Show("Fill login and password.");
        }
        if(sender.GetType() == account.GetType())
          ((TextBox)sender).Focus();
        else
          ((PasswordBox)sender).Focus();
    }
}
4

2 に答える 2

1

これを試して:

if (e.Key == Key.Enter && !string.IsNullOrWhiteSpace(txtPass.Text))
        {
            if (1 + 1 != 3)
            {
                MessageBox.Show("Wrong!!!");
                txtPass.Clear();
                txtPass.Focus();
            }
        }
于 2012-05-01T17:14:45.913 に答える
1

e.Handled = true;を設定してみてください。キープレスがテキストボックスに伝播するのを防ぎます。

于 2012-05-01T16:48:03.633 に答える