如何在某次按键后阻止文本框值的更改?例如,我正在尝试阻止输入数字,如果输入了数字,则会显示一个消息框,但该数字仍在打印中。我怎样才能得到它而不打印数字?
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '1')
{
MessageBox.Show("Only letters please");
}
}
提前致谢, ARI
答案 0 :(得分:2)
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (Regex.IsMatch(textBox1.Text, "[0-9]"))
{
MessageBox.Show("Only letters please");
textBox1.Text = Regex.Replace(textBox1.Text, "[0-9]", String.Empty);
}
}
答案 1 :(得分:1)
以下是样本:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
答案 2 :(得分:0)
首先,我建议您在每次按下某个键时决定让客户端执行服务器请求。 或者这可能是客户端验证?如果您想验证每个字母,这是一个更好的选择。 如果是这样的话...这里有一些可以使用的脚本(不是我的...只是谷歌搜索): http://www.java2s.com/Code/JavaScript/Form-Control/AllowingOnlyNumbersintoaTextBox.htm http://justins-fat-tire.blogspot.com/2007/09/javascript-numeric-only-text-box.html
一个好的候选解决方案可能是您在提交时验证了这一点。然后,最小化服务器请求的数量。
/干杯马格努斯
答案 3 :(得分:0)
您可以使用文本框的KeyPress
事件并仅使用字母
void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//allow backspace in case to remove some
e.Handled = !(char.IsLetter(e.KeyChar) || e.KeyChar == (char)Keys.Back);
}