一、限制输入为数字
当用户按下某个按键时,会触发
keyPress事件,在该事件里对输出的字符进行判断
首先添加事件:

//限制输入数字
private void LimitInputNumber(object sender, KeyPressEventArgs e)
{
if(!char.IsNumber(e.KeyChar) && e.KeyChar!=(char)8)
{
e.Handled = true;
}
}
这里事件有两个参数object sender和KeyPressEventArgs e,
sender可以理解为发送这个事件的源对象,比如我有TextBox1和TextBox2两个控件,当我在第一个控件中输入时,sender就是TextBox1,在第二个控件输入时,sender就是TexeBox2。
在使用时要转换一下:
TextBox tb = sender as TextBox;
e可以理解为这个事件带的消息。查看代码发现这个参数只有两个属性:
// 摘要:
// 获取或设置与按下的键对应的字符。
//
// 返回结果:
// 撰写的 ASCII 字符。 例如,如果用户按下 Shift + K,则该属性返回一个大写的 K。
public char KeyChar { get; set; }
//
// 摘要:
// 获取或设置一个值,该值指示是否 System.Windows.Forms.Control.KeyPress 事件进行处理。
//
// 返回结果:
// true 如果处理该事件;否则为 false。
public bool Handled { get; set; }
所以只要判断
keychar输入的字符是否是数字,不是的话将Handled设为true即可,该事件到此为止,不会继续向下层传递。
二、限制输入大小
大部分时候对数字输入的范围有限制,一种超过限制值不允许输入,另一种是允许输入,失去焦点时自动变为最大/最小值。
这里提供一种方法,当检测到文本框为空时,自动填充最小值。
用到的是控件的Leave事件

private void LimitInputNumber(object sender, EventArgs e)
{
TextBox tb = sender as TextBox;
if(tb.Text == "")
{
tb.Text = "0";
}
}
本文介绍了一种在软件开发中限制用户输入仅限数字的方法,并提供了自动填充最小值以确保输入范围符合要求的技术方案。

被折叠的 条评论
为什么被折叠?



