分享

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

 busfly 2007-02-10
 在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;
  
  }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多