仅在文本框中输入特定字符
only enter specific characters in to a textBox
我想在文本框中输入 2 位十进制数。我在文本框的按键事件中使用在互联网上找到的以下代码。
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 运行良好,我只能输入数字。但是仅限制两位小数的第二部分不起作用。请告诉我这段代码有什么问题。
谢谢。
切勿使用 KeyPress
进行此类验证。您总是会遇到一些棘手的版本问题,例如替换所选文本、从剪贴板粘贴内容等。
改用 Validating
事件,或者在用户单击“确定”按钮或其他任何按钮时执行一些自定义验证。在这些情况下,您可以假定用户已完成版本,并且您始终可以验证最终文本。
如果用户必须输入一些严格长度的文本,您可以使用 MaskedTextBox
代替。
我想在文本框中输入 2 位十进制数。我在文本框的按键事件中使用在互联网上找到的以下代码。
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 运行良好,我只能输入数字。但是仅限制两位小数的第二部分不起作用。请告诉我这段代码有什么问题。
谢谢。
切勿使用 KeyPress
进行此类验证。您总是会遇到一些棘手的版本问题,例如替换所选文本、从剪贴板粘贴内容等。
改用 Validating
事件,或者在用户单击“确定”按钮或其他任何按钮时执行一些自定义验证。在这些情况下,您可以假定用户已完成版本,并且您始终可以验证最终文本。
如果用户必须输入一些严格长度的文本,您可以使用 MaskedTextBox
代替。