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 }