防止文本框值更改
本文关键字:文本 | 更新日期: 2023-09-27 18:13:59
如何防止文本框值在按下某个键后发生变化?例如,我试图防止数字被输入,如果一个数字输入一个消息框显示,但数字仍在打印。我怎样才能拿到没有打印的号码呢?
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '1')
{
MessageBox.Show("Only letters please");
}
}
提前感谢,Ari
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);
}
}
示例:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar))
{
e.Handled = true;
}
}
首先,我建议在每次按下键时都让客户端执行服务器请求。或者这是客户端验证?如果你想验证每封信,这是更好的选择。如果是这样的话……这里有一些脚本可以使用(不是我的…只是搜索):http://www.java2s.com/Code/JavaScript/Form-Control/AllowingOnlyNumbersintoaTextBox.htmhttp://justins-fat-tire.blogspot.com/2007/09/javascript-numeric-only-text-box.html
一个好的候选解决方案可能是在提交时验证这一点。这样就可以最小化服务器请求的数量。
/欢呼Magnus
您可以使用文本框的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);
}