private void endSpeed_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) &&
!Char.IsPunctuation(e.KeyChar) &&
!Char.IsControl(e.KeyChar))
{
e.Handled = true;
}
else if (Char.IsPunctuation(e.KeyChar))
{
if (endSpeed.Text.LastIndexOf('.') != -1)
{
e.Handled = true;
}
if (e.KeyChar == '-')
{
if (this.endSpeed.Text.Length > 0)
e.Handled = true;
}
}
}
目前小弟在网络上搜寻只输入数字的方法,
东拼西凑之下完成了一个堪用的过滤方式。
其主要的逻辑为
1.先筛选掉非数字浮号的字符
2.小数点只能有一个
3.负号只能在第一位
但现在有个问题了,有几个方法无法使用
1.当textbox.text内已经有小数点,无法反白(全选)后输入'.'
2.当textbox.text内有内容,无法反白(全选)后输入'-'
总而言之我的过滤方式无法排除全选后输入这种方法,是否有更好的处理方式。