我正在使用昵稱(chēng)(昵稱(chēng))。用戶(hù)注冊(cè)時(shí),必須輸入相同的昵稱(chēng),它不能包含符號(hào)(下劃線(xiàn)除外),只能包含數(shù)字和字母。我為此使用用戶(hù)名KeyPress事件TextBox:private bool Handled = false;private void Username_KeyPress(object sender, KeyPressEventArgs e){ if (Char.IsLetterOrDigit(e.KeyChar)) this.Handled = false; else { if (e.KeyChar == '\b') this.Handled = false; //Backspace key else { if (e.KeyChar == '_' && !((TextBox)sender).Text.Contains("_") && ((TextBox)sender).Text.Length > 0) this.Handled = false; else this.Handled = true; } } e.Handled = Handled;}這段代碼可防止符號(hào)(與“ _”不同),內(nèi)容以“ _”開(kāi)頭并使用了多個(gè)下劃線(xiàn)“ H_E_L_L_O”,但它們需要防止在下劃線(xiàn)使用結(jié)尾,我的意思是:允許:Hell_o預(yù)防:Hello_這可能嗎?
1 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
除非您能讀懂用戶(hù)的想法,否則您將無(wú)法執(zhí)行此操作:)畢竟,用戶(hù)可能希望Hell_o像您的示例中那樣輸入內(nèi)容,但要鍵入他們首先需要輸入“ Hell_”,這樣您才能在此時(shí)停止輸入。您可能要做的最好的事情是處理UserName控件上的“ Validating”事件。
private void UserName_Validating(object sender, CancelEventArgs e) {
errorProvider1.SetError(UserName, "");
if (UserName.Text.EndsWith("_")) {
errorProvider1.SetError(UserName, "Stuff is wrong");
}
}
然后在“注冊(cè)”按鈕中單擊或執(zhí)行其他操作,檢查該控件(或您關(guān)心的任何控件)是否錯(cuò)誤。
- 1 回答
- 0 關(guān)注
- 217 瀏覽
添加回答
舉報(bào)
0/150
提交
取消