WPF 中textBox实现只输入数字

刚学到

通过本方法可以使文本框只能输入或复制入数字  对于数量类输入文本框比较有用 金额类只需小改动也可实现

以TextBox txtCount为例 添加TextChanged事件

代码如下

 1 private void txtCount_TextChanged(object sender, TextChangedEventArgs e)
 2         {
 3             TextBox temptbox = sender as TextBox;               //此句可能是为保护原框,也可能只是为了用一下sender -.-
 4             TextChange[] change = new TextChange[e.Changes.Count];         //
 5             e.Changes.CopyTo(change, 0);                     //得到Change的内容
 6             int offset = change[0].Offset;                    //得到Change的偏置值(offset) 可理解为变化的起始位置
 7             if (change[0].AddedLength > 0)                                  //如果是内容增加 则执行
 8             {
 9                 int num;                                                    //其实没啥用 但是没这个变量TryParse函数不能用
10                 if(temptbox.Text.IndexOf(' ')!=-1||!int.TryParse(temptbox.Text,out num))
11                 {                                  //Text.IndexOf检测某字符首次出现的位置,此处用来检测是否有空格
12                                               //int.TryParse返回是字符串是否转为数字,此处用来检测字符串是纯数字
13                                               //float,double应该也有类似的函数,可以用来实现小数检测
14                     temptbox.Text = temptbox.Text.Remove(offset, change[0].AddedLength);//去除change
15                     temptbox.Select(offset, 0);                        //恢复原状
16                 }
17             }
18         }

 

 

posted on 2013-07-19 21:05  编号2784  阅读(2143)  评论(1编辑  收藏  举报

导航