/// <summary>
/// 只能输入数字(含负号小数点)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void OnlyEnterNumber(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 45 && e.KeyChar != 46)
{
e.Handled = true;
}
//输入为负号时,只能输入一次且只能输入一次
if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0)) e.Handled = true;
if (e.KeyChar == 46 && ((TextBox)sender).Text.IndexOf(".") >= 0) e.Handled = true;
}
/// <summary>
/// 只能输入正实数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void OnlyEnterPlusNumber(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 46)
{
e.Handled = true;
}
if (e.KeyChar == 46 && ((TextBox)sender).Text.IndexOf(".") >= 0) e.Handled = true;
}
/// <summary>
/// 只能输入整数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void OnlyEnterInt(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13 && e.KeyChar != 45)
{
e.Handled = true;
}
//输入为负号时,只能输入一次且只能输入一次
if (e.KeyChar == 45 && (((TextBox)sender).SelectionStart != 0 || ((TextBox)sender).Text.IndexOf("-") >= 0)) e.Handled = true;
}
/// <summary>
/// 只能输入正整数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void OnlyEnterPlusInt(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)
{
e.Handled = true;
}
}
转自:
http://bbs.youkuaiyun.com/topics/240035385
本文提供了一个用于输入验证的解决方案,限制用户只能输入数字(含负号和小数点)、正数、整数及正整数。通过关键事件处理,有效过滤非法字符,确保输入数据符合预设规则。
3273

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



