我有一个事件,它没有任何机会在TextBox中输入数据。当我尝试在Textbox中输入数据时,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中输入不是数字或任何符号的数据。
答案 0 :(得分:3)
尝试使用以下代码
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString() , @"^[a-zA-Z]+$"))
e.Handled = true;
}
谢谢!
答案 1 :(得分:2)
好像你正在使用c#。
然后您需要遵循以下步骤:
1)将文本框的causeValidation属性设置为true
2)设置原因验证的事件监听器
myTextBox1.Validating +=
new System.ComponentModel.CancelEventHandler(myTextBox1_Validating);
myTextBox1.Validated +=
new System.EventHandler(myTextBox1_Validated);
3)实现这些事件的hadler函数
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