才疏学浅(TextBox 小数点不能在首位+只能输入数字)

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar !=8&&e.KeyChar!=13&&!char.IsDigit(e.KeyChar)&&e.KeyChar!=46)
{

//8 删除键 13回车 46 小数点
MessageBox.Show("请输入数字");
e.Handled = true;//禁止输入
}
if(e.KeyChar==46)
{
if (textBox1.Text.Length<=0)//判断小数点不能为1
{
e.Handled = true;
MessageBox.Show("小数点不能在第一位");
}
}
}

结论:

上面的案例是错误的,这是互联网上的版本,当你第一次输入小数点,是提示的,但是,如果我先输入123456,然后把光标移到第一位再次输入 小数点 就没办法判断了。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar !=8&&e.KeyChar!=13&&!char.IsDigit(e.KeyChar)&&e.KeyChar!=46)
{

//8 删除键 13回车 46 小数点
MessageBox.Show("请输入数字");
e.Handled = true;//禁止输入
}
if(e.KeyChar==46)
{
if (textBox1.SelectionStart==0)//判断小数点不能为1
{
e.Handled = true;
MessageBox.Show("小数点不能在第一位");
}
}
}

这是我的代码,让判断跟着 光标走即可。

 

你可能感兴趣的:(只能输入数字)