ユーザー名の入力が有効であることを確認するために、検証を行うためのコールバック メソッドを追加しました。
Regex UserNameRE = new Regex(@"^[a-zA-Z]\w*$");
//being called when input box is not focused any more
private void UserNameInput_Leave(object sender, EventArgs e)
{
//pop up a warning when user name input is invalid
if (!UserNameRE.IsMatch(UserNameInput.Text))
{
MessageBox.Show("Invalid User Name!");
this.UserNameInput.Text = "";
this.UserNameInput.Focus();
}
}
このメソッドは、ユーザーが入力を終了したときに呼び出されます (このメソッドは、「入力ボックスを離れる」というイベントにバインドされています)。ユーザーが無効な User_Name を残してパスワードの入力を開始すると機能します。
ただし、ユーザーが別のタブ、たとえば [登録] タブをクリックしたときにも機能します。私はこれが起こってほしくない。ユーザーが「登録」タブをクリックした場合、明らかにログインしたくないので、私のC#アプリは警告ボックスをポップアップして、有効なユーザー名を再度入力するよう強制するべきではありません.
C# は、このような 2 つの状況の違いをどのように見分けることができますか? どのオブジェクトがクリックされているかがわかれば簡単です。