English(beta)
hfyb的Blog 页面正在加载中 .....

TextBox中输入字符控制的解决办法

引自http://www.cnblogs.com/tanghuawei/archive/2006/12/15/592834.html


 在C#中,TextBox控件对输入字符的控制有keypress、keyup、和keydown事件来使用,但大家也看到了,这几个事件对输入字符的控制都有一定的缺陷,如果,你使用中文输入法,那么很多原来你不希望输入的字符也可以输入进去。
这几天做程序的时候,就碰到了这个问题,我的解决思路很简单,既然这三个事件不再起作用,那么我就使用了TextBox控件中时刻能发生的TextChanged事件,以期望在这个事件中作些东西,以达到控制字符的目的。  
   
  private System.Windows.Forms.TextBox textBox1;
  private string text;
  public Form1()
  {
   text = textBox1.Text;
  }
  private void textBox1_TextChanged(object sender, System.EventArgs e)
  {
   int len = text.Length;
  if(len < textBox1.Text.Length)
  {
   int index = textBox1.Text.IndexOf(text);
   char c = (textBox1.Text.Remove(index,text.Length))[0];
   if(c.CompareTo('0') < 0||c.CompareTo('9') >0)
   {
   textBox1.Text = text;
   textBox1.SelectionStart = text.Length;
   }
   }
   text = textBox1.Text;
  
  }

posted on 2007-01-21 18:07  hfyb  阅读(448)  评论(0编辑  收藏  举报

导航