在许多需要输入数字的文本框中需要加入一些限制,这个地方可以用规则表达式,同时我们也可以直接判断每一次按下的键值,来判断是不是我们需要的数字所代表的键值,下面一段代码是我遇到的问题,朋友给出的解决方法,现在写下来,希望对大家有用
代码
1
#region
只允许输入数字
2 /// <summary>
3 /// 只允许输入数字
4 /// 只对文本框有效,这个事件放到keyPress事件里
5 /// </summary>
6 /// <param name="sender"></param>
7 /// <param name="e"></param>
8 public static void OnlyWriteNumber( object sender, KeyPressEventArgs e)
9 {
10 TextBox txt = (TextBox)sender; // 需要添加限制的是文本框
11 if (e.KeyChar == 8 )
12 {
13 return ;
14 }
15 // if (e.KeyChar == 46 && txt.Text.IndexOf('.') == -1) // 这个地方表示文本内只能输入一次小数点
16 // {
17 // return;
18 // }
19 if (e.KeyChar > 57 || e.KeyChar < 48 ) // 只能是数字
20 {
21 e.Handled = true ;
22 txt.Focus();
23 }
24
25
26 }
27 #endregion
2 /// <summary>
3 /// 只允许输入数字
4 /// 只对文本框有效,这个事件放到keyPress事件里
5 /// </summary>
6 /// <param name="sender"></param>
7 /// <param name="e"></param>
8 public static void OnlyWriteNumber( object sender, KeyPressEventArgs e)
9 {
10 TextBox txt = (TextBox)sender; // 需要添加限制的是文本框
11 if (e.KeyChar == 8 )
12 {
13 return ;
14 }
15 // if (e.KeyChar == 46 && txt.Text.IndexOf('.') == -1) // 这个地方表示文本内只能输入一次小数点
16 // {
17 // return;
18 // }
19 if (e.KeyChar > 57 || e.KeyChar < 48 ) // 只能是数字
20 {
21 e.Handled = true ;
22 txt.Focus();
23 }
24
25
26 }
27 #endregion