可以在其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;
}
}