将c#文本框格式化为仅允许数字字符

时间:2014-03-05 23:39:34

标签: c# textbox controls

我一直在经历这里的解决方案和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。

非常感谢所有帮助:)

3 个答案:

答案 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;  
}