为了确保用户名输入有效,我添加了这样的回调方法来进行验证:
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# 如何区分这两种情况?如果我知道单击了哪个对象应该很容易。