0

我有一个事件没有机会在 TextBox 中输入数据。当我尝试在文本框中输入数据时,文本框不会这样做:

private void Login_textbox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!System.Text.RegularExpressions.Regex.IsMatch(textbox1.Text, @"^[a-zA-Z]+$"))
        e.Handled = true;
}

我只想在 TextBox 中输入不是数字或任何符号的数据。

4

2 回答 2

3

尝试使用以下代码

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
     if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString() , @"^[a-zA-Z]+$")) 
         e.Handled = true;
}

谢谢!

于 2012-09-05T04:30:24.707 回答
2

看来您正在使用 c#。

然后您需要遵循的步骤:

1) 将文本框的 causeValidation 属性设置为 true

2) 为原因验证设置事件监听器

myTextBox1.Validating +=
  new System.ComponentModel.CancelEventHandler(myTextBox1_Validating);
myTextBox1.Validated += 
  new System.EventHandler(myTextBox1_Validated);

3) 实现这些事件处理函数

private void myTextBox1_Validating(object sender,System.ComponentModel.CancelEventArgs e)
{        
   if(!CheckIfTextBoxNumeric(myTextBox1))
   {
       myLabel.Text =  "Has to be numeric";
       e.Cancel = true;
   }
}
private void myTextBox1_Validated(object sender,System.EventArgs e)
{
   myLabel.Text = "Validated first control";          
}

如果您想使用 maskedTextBox,请参阅http://msdn.microsoft.com/en-us/library/ms234064(v=vs.80).aspx

于 2012-09-05T04:18:36.667 回答