文本框中控制只能输入数字,如果粘贴不符合格式,提示重新出入
TraceBack:CSDN社区 - 原文地址:http://topic.csdn.net/t/20040120/08/2677105.html
整理者:赵岩
在KeyPress事件中追加如下代码:
//输入不是0~9之间的数字或者不是回退健就不显示
if ((e.KeyChar < (char)48 || e.KeyChar > (char)57) && e.KeyChar != (char)8)
{
e.Handled = true;
}
如果还要控制操作者通过“Ctrl + V”或者“复制菜单”向TextBox框拷贝非数字的字符串可以在TextBox的TextChanged事件中追加如下代码,另外需要追加一个变量来保存拷贝前的字符串,而且需要在Form_Load事件中将TextBox的值赋给该变量。
string sOldValue = "";
private void textBox1_TextChanged(object sender, System.EventArgs e)
{
//取得当前TextBox的值
string sCurVvalue = this.textBox1.Text.Trim().ToString();
try
{
//如果当前的值不是null或者空串时,转换成int型数据
if (sCurVvalue != null && !sCurVvalue.Equals(""))
{
int.Parse(sCurVvalue);
}
//没有出现异常,说明是数字,重新给TextBox赋值(不带有空格)
this.textBox1.Text = sCurVvalue;
//更新原来的值
sOldValue = sCurVvalue;
}
catch
{
//出现异常,将TextBox还原成原来的值
this.textBox1.Text = sOldValue;
}
}