日期:2014-05-18  浏览次数:20864 次

C#文本框中限制只能输入数字,负号
在C#文本框中怎样限制负号只能输一次且只能在前面出现呢?需要在KeyPress事件应该怎么写啊?

------解决方案--------------------
C# code
 private void textInMoney_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 0x20) e.KeyChar = (char)0;  //禁止空格键
            if ((e.KeyChar == 0x2D) && (((TextBox)sender).Text.Length == 0)) return;   //处理负数
            if (e.KeyChar > 0x20)
            {
                try
                {
                    double.Parse(((TextBox)sender).Text + e.KeyChar.ToString());
                }
                catch
                {
                    e.KeyChar = (char)0;   //处理非法字符
                }
            }
        }

------解决方案--------------------
建议使用 System.Windows.Forms.MaskedTextBox 类。