110,567
社区成员
发帖
与我相关
我的任务
分享
private bool nonNumberEntered = false;
private void txtTextBox_KeyDown(object sender, KeyEventArgs e)
{
nonNumberEntered = false;
if ((e.KeyCode < Keys.D0) || (e.KeyCode > Keys.D9 && e.KeyCode < Keys.NumPad0) || (e.KeyCode > Keys.NumPad9))
{
if (e.KeyCode != Keys.Back)
{
nonNumberEntered = true;
}
}
}
private void txtTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (nonNumberEntered)
{
e.Handled = true;
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//48-57为数字,8为退格,13为回车,45为负号,46为小数点
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(".") != -1 || ((TextBox)sender).SelectionStart == 0 || ((TextBox)sender).Text=="-" ))
{
e.Handled = true;
}
}