禁止在文本框内容的末尾添加下划线“ _”

我正在使用昵称(昵称)。


用户注册时,必须输入相同的昵称,它不能包含符号(下划线除外),只能包含数字和字母。


我为此使用用户名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_E_L_L_O”,但它们需要防止在下划线使用结尾,我的意思是:

允许:Hell_o

预防:Hello_

这可能吗?


慕妹3242003
浏览 166回答 1
1回答

jeck猫

除非您能读懂用户的想法,否则您将无法执行此操作:)毕竟,用户可能希望Hell_o像您的示例中那样输入内容,但要键入他们首先需要输入“ Hell_”,这样您才能在此时停止输入。您可能要做的最好的事情是处理UserName控件上的“ Validating”事件。private void UserName_Validating(object sender, CancelEventArgs e) {    errorProvider1.SetError(UserName, "");    if (UserName.Text.EndsWith("_")) {        errorProvider1.SetError(UserName, "Stuff is wrong");    }            }然后在“注册”按钮中单击或执行其他操作,检查该控件(或您关心的任何控件)是否错误。
打开App,查看更多内容
随时随地看视频慕课网APP