如何让文本框的录入信息自动做全角转半角转变?

 Q1:如何让文本框的录入信息自动做全角转半角转变?  

 首先,找了一个全角转半角的函数:
    public static string Q2B(string input)
        {
            char[] c = input.ToCharArray();
            for (int i = 0; i < c.Length; i++)
            {
                if (c[i] == 12288)
                {
                    c[i] = (char)32;
                    continue;
                }
                if (c[i] > 65280 && c[i] < 65375)
                {
                    c[i] = (char)(c[i] - 65248);
                }         
            }
            return new string(c);
        }
      将其应用到我的窗体中,粘贴在构造函数后面,
  接下来,如何使用呢?
       private void textBox1_TextChanged(object sender, EventArgs e)
        {
            textBox1.Text = ToDBC(textBox1.Text.Trim());
              
        }
  效果:的确是转换成半角了,可是每次输入数字的时候,光标都跑到文本的最前方去了,效果不好,如何修改呢?
  加一条
       private void textBox1_TextChanged(object sender, EventArgs e)
        {
            textBox1.Text = ToDBC(textBox1.Text.Trim());
           textBox1.SelectionStart = textBox1.TextLength;
        }
  效果:这次有所改进,输入数据后,光标都是在文本后面了。但是,有个问题:如果想在现有文本中间,补充插入信息,就麻烦了,输入一个数字,光标就自动跳到文本结尾处了,

如何解决这个问题呢?

能否将textBox1.text赋值为一个变量  string aa=textBox1.text.Trim();在焦点离开textBox1的时候,做一次全角到半角的转换?

我现在没有答案-------------------------------------------------------!

我目前使用的方法是,将全角到半角的转换工作放在了保存按钮中完成。
private void button2_Click(object sender, EventArgs e)
        {
           
            textBox1.Text = Q2B(textBox1.Text.Trim());
            textBox2.Text = Q2B(textBox2.Text.Trim());
            textBox3.Text = Q2B(textBox3.Text.Trim());
           
        }

 

2009-11-7

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值