我一直在经历这里的解决方案和dotnetperls试图找到一种方法来格式化我的文本框只允许数字字符。我要么只是没有得到它,要么真的不理解代码来做我想要的。
我有一个表单根据按下另一个表单的按钮而改变,我需要Age框只允许数字字符达到99(因此用户可以输入1-99范围内的年龄.I已经研究过正则表达式方法和蒙面文本框,但只是没有得到它。
有人能够指出我将用于实现这一目标的方向吗?
我的代码读作:
private void AddItem_Load(object sender, EventArgs e)
{
if (formName == "customer")
{
this.Text = "Add Customer";
lblZero.Text = "ID:";
lblOne.Text = "Customer Name:";
lblTwo.Text = "Address Line 1:";
lblThree.Text = "Address Line 2:";
lblFour.Text = "Town:";
lblFive.Text = "Postcode:";
lblSix.Text = "Age:";
txtID.Text = Convert.ToString(customerList.NewID());
txtID.Enabled = false;
}
else
{
this.Text = "Add Product";
lblZero.Text = "Product ID:";
lblOne.Text = "Product Code:";
lblTwo.Text = "Product Name:";
lblThree.Text = "Product Description:";
lblFour.Text = "Price:";
lblFive.Text = " --------- ";
lblSix.Text = " ---------";
txtID.Text = Convert.ToString(productList.NewID());
txtID.Enabled = false;
txtFive.Enabled = false;
txtSix.Enabled = false;
}
}
表单上的文本框标记为txtZero.txt~txtSix.txt。
非常感谢所有帮助:)
答案 0 :(得分:1)
我建议您只使用NumericUpDown
控件。
您只能在其中输入数字,并且您可以设置允许的最小值和最大值。
numericUpDown1.Minimum = 1;
numericUpDown1.Maximum = 99;
答案 1 :(得分:0)
你可以添加一个:
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; //ok
}
else
{
e.Handled = true; //not ok
}
}
并致电:
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;
}
答案 2 :(得分:0)
认为这个已被讨论过几次......
How to allow only integers in a textbox?
如果您确实希望用户无法输入非数字字符,则需要在Javascript中执行此操作。验证器就是这样,它们在回传表单后验证输入。您只需添加验证器并使用回发方法,例如
protect void btnSave_Click(object sender, EventArgs e)
{
Page.Validate(); // validation message from the validator gets displayed
if (!Page.IsValid)
return;
}