您的位置:首页 > 编程语言 > C#

C# Winform只能输入数字的TextBox---补充

2009-07-26 10:50 435 查看
原代码:

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;
}

以上代码是无法限制全角数字输入的.而在项目中全角数字是不能算真正的数字,因为在参加计算时全角可能会出错.
修改的代码:

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;
}

 

/article/5272298.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: