爲了確保用戶名的輸入是否有效,我加入這樣的回調方法做了驗證:
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#如何說明這兩種情況的區別?如果我知道哪個對象被點擊,應該很容易。
爲什麼不在用戶點擊提交按鈕時進行檢查?你不會再有問題了...... – LaGrandMere 2013-03-26 10:27:57
做一件事..而不是「離開」事件,嘗試密碼「OnSetFocus()」或類似的東西..以便您的預定義條件可以得到滿足。但在這一點上,你將面臨更多問題。 「如果用戶直接進入密碼字段」,還有一件事,一旦用戶名字段得到一些輸入,啓用密碼字段,直到禁用輸入。希望你得到它.. – 2013-03-26 10:29:16
謝謝你,@拉格朗米爾。點擊提交按鈕後執行檢查必須更容易,但它只能解決我目前遇到的問題,並不能回答我提出的問題。也許有一天,我仍然需要在另一種情況下實現這樣的功能。 – Leonard 2013-03-27 02:59:14