通过本方法可以使文本框只能输入或复制入数字 对于数量类输入文本框比较有用 金额类只需小改动也可实现
以TextBox txtCount为例 添加TextChanged事件
代码如下
private void txtCount_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox temptbox = sender as TextBox; //此句可能是为保护原框,也可能只是为了用一下sender -.-
TextChange[] change = new TextChange[e.Changes.Count]; //
e.Changes.CopyTo(change, 0); //得到Change的内容
int offset = change[0].Offset; //得到Change的偏置值(offset) 可理解为变化的起始位置
if (change[0].AddedLength > 0) //如果是内容增加 则执行
{
int num; //其实没啥用 但是没这个变量TryParse函数不能用
if(temptbox.Text.IndexOf(' ')!=-1||!int.TryParse(temptbox.Text,out num))
{ //Text.IndexOf检测某字符首次出现的位置,此处用来检测是否有空格
//int.TryParse返回是字符串是否转为数字,此处用来检测字符串是纯数字
//float,double应该也有类似的函数,可以用来实现小数检测
temptbox.Text = temptbox.Text.Remove(offset, change[0].AddedLength);//去除change
temptbox.Select(offset, 0); //恢复原状
}
}
}
原文链接:https://www.qiquanji.com/post/8463.html
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
微信扫码关注
更新实时通知