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

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

转载于:https://www.cnblogs.com/tanghuawei/archive/2006/12/15/592834.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值