{
TextBox txt = sender as TextBox;
// 屏蔽非法按键,只能输入整数
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9))
{
e.Handled = false ;
}
else
{
e.Handled = true ;
}
}
private voID txtRoomArea_KeyDown( object sender, KeyEventArgs e)
{
TextBox txt = sender as TextBox;
// 屏蔽非法按键,只能输入小数
if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)
{
if (txt.Text.Contains( " . " ) && e.Key == Key.Decimal)
{
e.Handled = true ;
return ;
}
e.Handled = false ;
}
else
{
e.Handled = true ;
}
}
参考一:
以下实现TextBox只能输入小数并且屏蔽中文输入和非法粘贴:
说明:以下实现均在Framework 3.0平台下
为TextBox加两个事件:TextChanged和KeyDown事件,具体如下:
KeyDown事件:
2 {
3 TextBox txt = sender as TextBox;
4
5 //屏蔽非法按键
6 if ((e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9) || e.Key == Key.Decimal)
7 {
8 if (txt.Text.Contains(".") && e.Key == Key.Decimal)
9 {
10 e.Handled = true;
11 return;
12 }
13 e.Handled = false;
14 }
15 else if (((e.Key >= Key.D0 && e.Key <= Key.D9) || e.Key == Key.OemPeriod) && e.KeyboardDevice.ModifIErs != ModifIErKeys.Shift)
16 {
17 if (txt.Text.Contains(".") && e.Key == Key.OemPeriod)
18 {
19 e.Handled = true;
20 return;
21 }
22 e.Handled = false;
23 }
24 else
25 {
26 e.Handled = true;
27 }
28 }
29
30 TextChanged事件
1 private voID TextBox_TextChanged( object sender, TextChangedEventArgs e)
2 {
3 //屏蔽中文输入和粘贴输入
4 TextBox textBox = sender as TextBox;
5 TextChange[] change = new TextChange[e.Changes.Count];
6 e.Changes.copyTo(change, 0);
7
8 int offset = change[0].Offset;
9 if (change[0].AddedLength > 0)
10 {
11 double num = 0;
12 if (!Double.TryParse(textBox.Text, out num))
13 {
14 textBox.Text = textBox.Text.Remove(offset, change[0].AddedLength);
15 textBox.Select(offset, 0);
16 }
17 }
18 } 总结
以上是内存溢出为你收集整理的silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法全部内容,希望文章能够帮你解决silverlight---TextBox只能输入数字或小数 屏蔽中文输入和非法粘贴: KeyDown事件处理方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)