题
我有我想为仅包含数字的文本框。但是,如果我打错了号码,我不能退格纠正。我怎样才能让退格工作。感谢
private void amount_PaidTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsNumber(e.KeyChar) != true)
{
e.Handled = true;
}
}
解决方案
您可以添加一个检查,以允许控制字符,以及:
if (Char.IsControl(e.KeyChar) != true && Char.IsNumber(e.KeyChar) != true)
{
e.Handled = true;
}
更新:响应于人-B的对代码的评论/他暗示下面的风格(这也是我怎么会亲自写):
if (!Char.IsControl(e.KeyChar) && !Char.IsNumber(e.KeyChar))
{
e.Handled = true;
}
其他提示
正确答案是:
private void amount_PaidTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !сhar.IsNumber(e.KeyChar) && (e.KeyChar != '\b');
}
您也可以覆盖框TextChanged事件:
private void textBox1_TextChanged(object sender, EventArgs e)
{
string text = (sender as TextBox).Text;
StringBuilder builder = new StringBuilder(String.Empty);
foreach (char character in text)
{
if (Char.IsDigit(character))
{
builder.Append(character);
}
}
(sender as TextBox).Text = builder.ToString();
}
请注意,您必须在代码添加到设置插入符位置。
private void amount_PaidTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar) && e.KeyCode != Keys.Back)
e.Handled = True;
}
上述的稍微吸尘器格式:
private void amount_PaidTextBox_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !(Char.IsNumber(e.KeyChar) || (e.KeyChar==Keys.Back));
}
我发现下面的运作良好。它包括额外的例外允许退格键,方向键删除键等。 如何只允许数字(0-9)中使用jQuery HTML输入框?
private void txt_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || e.KeyChar == '\b')
{
// Allow Digits and BackSpace char
}
else
{
e.Handled = true;
}
}
参见Link还:掩蔽文本框为仅接受小数小数 / 12209854# 12209854
您可以使用按键事件如下:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) & (e.KeyChar != 8)) e.Handled = true;
}
不隶属于 StackOverflow