防止在文本框中输入字符后继续输入
本文关键字:输入 字符 继续 文本 | 更新日期: 2023-09-27 18:16:33
我有一个文本框,用户应该在其中键入价格。如果价格以0开头,我需要防止继续输入。例如用户不能输入"000"或"00009"。
我在KeyPress上尝试了这个,但是没有!
if (txt.Text.StartsWith("0"))
return; Or e.Handeled = true;
try this:
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//only allow digit and (.) and backspace
if ((e.KeyChar < '0' || e.KeyChar > '9') && e.KeyChar != ''b' && e.KeyChar != '.')
{
e.Handled = true;
}
var txt = sender as TextBox;
//only allow one dot
if (txt.Text.Contains('.') && e.KeyChar == (int)'.')
{
e.Handled = true;
}
//if 0, only allow 0.xxxx
if (txt.Text.StartsWith("0")
&& !txt.Text.StartsWith("0.")
&& e.KeyChar != ''b'
&& e.KeyChar != (int)'.')
{
e.Handled = true;
}
}
您可以使用TextChanged
-事件。
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (this.textBox1.Text == "0") this.textBox1.Text = "";
}
这将只工作,如果TextBox
是空的启动
我自己解决了:
private void txtPrice_KeyPress(object sender, KeyPressEventArgs e)
{
if (txtPrice.Text.StartsWith("0") && !char.IsControl(e.KeyChar))
{
e.Handled = true;
return;
}
}