将c#文本框格式化为仅允许数字字符
将c#文本框格式化为仅允许数字字符
我一直在这里和dotnetperls网站上寻找解决方法,试图找到一种只允许输入数字字符的文本框格式化方法。要么我没有弄明白,要么我真的不理解代码如何实现我想要的功能。\n我有一个表单,根据在另一个表单中按下的按钮而改变,我需要“年龄”框只允许输入数字字符,且最大为99(所以用户可以输入1-99范围内的年龄)。我已经研究了正则表达式和掩码文本框的方法,但就是不明白。\n有人能指点我该用什么方法来实现这个吗?\n我的代码如下:\n
private void AddItem_Load(object sender, EventArgs e) { if (formName == "customer") { this.Text = "添加客户"; lblZero.Text = "ID:"; lblOne.Text = "客户姓名:"; lblTwo.Text = "地址1:"; lblThree.Text = "地址2:"; lblFour.Text = "城镇:"; lblFive.Text = "邮编:"; lblSix.Text = "年龄:"; txtID.Text = Convert.ToString(customerList.NewID()); txtID.Enabled = false; } else { this.Text = "添加产品"; lblZero.Text = "产品ID:"; lblOne.Text = "产品代码:"; lblTwo.Text = "产品名称:"; lblThree.Text = "产品描述:"; lblFour.Text = "价格:"; lblFive.Text = " --------- "; lblSix.Text = " ---------"; txtID.Text = Convert.ToString(productList.NewID()); txtID.Enabled = false; txtFive.Enabled = false; txtSix.Enabled = false; } }
\n表单上的文本框标签为txtZero.txt ~ txtSix.txt。\n非常感谢你的帮助 🙂
问题的原因是用户想要将C#的文本框设置为只允许输入数字字符。但是,他们发现在ASP.NET MVC或ASP.NET中使用验证器无法实现这一点。验证器只能在提交表单后验证输入,而无法阻止用户输入非数字字符。
为了解决这个问题,用户需要使用JavaScript来限制文本框只能输入数字字符。他们可以在文本框的onkeydown事件中添加一个JavaScript函数,该函数将检查按下的键码并阻止非数字字符的输入。
以下是一个示例的JavaScript函数,用于限制文本框只能输入数字字符:
function onlyNumeric(event) { var charCode = (event.which) ? event.which : event.keyCode; if (charCode > 31 && (charCode < 48 || charCode > 57)) { event.preventDefault(); } }
要应用此函数,用户需要将其与文本框的onkeydown事件关联起来。例如,在HTML中,可以这样写:
这样,用户在文本框中只能输入数字字符,其他字符将被阻止。
希望以上内容能帮助那些遇到类似问题的人。
问题:如何将C#文本框格式化为仅允许输入数字字符?
原因:该问题的出现是因为希望限制用户在文本框中只能输入数字字符,避免输入非数字字符导致错误。
解决方法:可以通过以下方法来解决该问题。
首先,添加以下代码片段:
public static void NumericEvent(ref string text, ref KeyPressEventArgs e) { if (char.IsNumber(e.KeyChar) || e.KeyChar == (char)Keys.Back || e.KeyChar == (char)Keys.Delete) { e.Handled = false; // 允许输入 } else { e.Handled = true; // 不允许输入 } }
然后,在需要限制输入的文本框的KeyPress事件中调用上述方法,例如:
private void GenericNumeric_KeyPress(object sender, KeyPressEventArgs e) { TextBox tb = sender as TextBox; string field = tb.Text; NumericEvent(ref field, ref e); tb.Text = field; }
通过以上方法,可以实现在C#中将文本框格式化为仅允许输入数字字符的功能。