文本框中控制只能输入数字,如果粘贴不符合格式,提示重新出入

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;  
  }  
  }  

posted @ 2008-07-19 11:29  岩仔  阅读(573)  评论(0编辑  收藏  举报