永发信息网

如何让wpf 中的textbox只能输入整型或浮点型呢??

答案:2  悬赏:30  手机版
解决时间 2021-01-11 06:50
如何让wpf 中的textbox只能输入整型或浮点型呢??
最佳答案
没必要,WPF最好使用Validator进行验证,或者也可以在确认的时候检查一下即可。
如果执意要这样做,也给你段代码:
private void TextBoxNumbersOnly(object sender, TextChangedEventArgs e)
{
var box = (TextBox)sender;
var start = box.SelectionStart;
for (var i = 0; i < box.Text.Length; i++) if (!char.IsNumber(box.Text[i]))
{
if (i < start) start--;
box.Text = box.Text.Remove(i, 1);
i--;
}
box.Select(start, 0);
}
全部回答
privatevoid tbCount_KeyDown(object sender, KeyEventArgs e)
{
TextBox txt = sender as TextBox;
//屏蔽非法按键
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal || e.Key.ToString() =="Tab")
{
if (txt.Text.Contains(".") && e.Key == Key.Decimal)
{
e.Handled =true;
return;
}
e.Handled =false;
}
elseif (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.Modifiers != ModifierKeys.Shift)
{
if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)
{
e.Handled =true;
return;
}
e.Handled =false;
}
else
{
e.Handled =true;
}
}
privatevoid TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
//屏蔽中文输入和非法字符粘贴输入
TextBox textBox = sender as TextBox;
TextChange[] change =new TextChange[e.Changes.Count];
e.Changes.CopyTo(change, 0);
int offset = change[0].Offset;
if (change[0].AddedLength >0)
{
double num =0;
if (!Double.TryParse(textBox.Text, out num))
{
textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);
textBox.Select(offset, 0);
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
蔷薇花的园林应用
一组数据3,x,4,5,8的平均数为5,则这组数
一克里有几个0.25克
怎样用酱油淹豇豆
德语是跟外教学更好?还是中教更好?
正房座西向东,南侧正对大路犯冲吗?怎样化解
古诗词中形容让人如沐春风女子
苹果四手机怎么突然蓝屏了怎么办
写一篇植树节的日记
迷雾好看吗
珈黛去痘康敏美容机构(临沂总代理)地址在什么
0.42立方水池蓄水0.28立方两个小时下降一公分
没人真的会帮你,平日称兄道弟的人也一样,为
富新防盗门的质量怎样?售后服务到位吗?
井邑无衣冠什么意思
推荐资讯
1971年公历闰5月23
胭脂的主要成份是什么
面对异性不自信怎么办
pp加入玻纤后型腔压强是增大还是减小
你们的亲人有没有什么细节特别让你们感动?
山西以前的郭县大槐树是现在的什么名字
求教最后第二关的杀生院要怎么打
从嘉定开车去上海虹桥机场有限牌的吗
宝马之悦的介绍
什么叫氙气?成人得氙气该如何处理?
出车祸后伤者想出院,但肇事者不愿意帮办理出
成语金银()()怎么写
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?