只输入textBox

时间:2015-07-29 12:38:42

标签: c# visual-studio textfield

我想在textBox中输入2位十进制数。我正在使用下面的代码,我在互联网上找到了textBox的按键事件。

       if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
        {
            e.Handled = true;
        }

        // only allow two decimal point
        if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -2))
        {
            e.Handled = true;
        }


在上面的代码中,首先如果条件id运行良好,我只能输入数字。但限制只有2位小数的第二部分不起作用。请告诉我这段代码有什么问题 谢谢。

1 个答案:

答案 0 :(得分:2)

永远不要使用KeyPress进行此类验证。你会遇到一些棘手的版本问题,例如替换所选文本,从剪贴板粘贴东西等等。

使用Validating事件代替,或者在用户单击“确定”按钮或其他任何内容时执行一些自定义验证。在这些情况下,您可以假设用户已完成编辑,您始终可以验证最终文本。

如果用户必须输入一些严格长度的文本,则可以改为使用MaskedTextBox