private
void
textBox1_KeyPress(
object
sender, KeyPressEventArgs e)
{
if ( ! char .IsDigit(e.KeyChar)) e.Handled = true ;
// '\b'是退格键值
if (e.KeyChar == ' \b ' || e.KeyChar == ' . ' ) e.Handled = false ;
}
{
if ( ! char .IsDigit(e.KeyChar)) e.Handled = true ;
// '\b'是退格键值
if (e.KeyChar == ' \b ' || e.KeyChar == ' . ' ) e.Handled = false ;
}
以上代码是无法限制全角数字输入的.而在项目中全角数字是不能算真正的数字,因为在参加计算时全角可能会出错.
修改的代码:
private
void
textBox1_KeyPress(
object
sender, KeyPressEventArgs e)
{
// 全角占一个汉字,半角点半个汉字,所以在字节上是不同的
// 全角数字"KeyChar"=2,半解数字"KeyChar"=1
byte [] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString());
// array.LongLength,而不是array.Length
if ( ! char .IsDigit(e.KeyChar) || array.LongLength == 2 ) e.Handled = true ;
// '\b'是退格键值
if (e.KeyChar == ' \b ' || e.KeyChar == ' . ' ) e.Handled = false ;
}
{
// 全角占一个汉字,半角点半个汉字,所以在字节上是不同的
// 全角数字"KeyChar"=2,半解数字"KeyChar"=1
byte [] array = System.Text.Encoding.Default.GetBytes(e.KeyChar.ToString());
// array.LongLength,而不是array.Length
if ( ! char .IsDigit(e.KeyChar) || array.LongLength == 2 ) e.Handled = true ;
// '\b'是退格键值
if (e.KeyChar == ' \b ' || e.KeyChar == ' . ' ) e.Handled = false ;
}