带有特定数字的文本框

时间:2014-04-15 09:16:56

标签: c# winforms

我想在visual studio中的Windows窗体应用程序中创建一个TextBox,它只包含特定的数字。例如,我希望一个文本框只能包含01之间的数字。如果它的任何其他值我想要一条消息显示错误的数字。该应用程序是用C#编写的。

我见过这个例子 C# Numeric Only TextBox Control 但它是数字,我想要特定的数字。

编辑:我的错误我不够清楚。我尝试了NumericUpDown,但它并不适用于所有示例。在第二个框中我想要从20到340的值,但只有。(20,20.5,21等)之间的.5浮点,如果我使用NumericUpDown,如果用户插入22.6,单元格接受它,我不想要那。这就是为什么我问是否可以控制使用Textbox或MaskedTextBox插入的值,如果它符合条件,那么用户就可以输入框了。希望我现在很清楚。

2 个答案:

答案 0 :(得分:2)

您应该使用NumericUpDown

你可以像这样使用它;

NumericUpDown control = new NumericUpDown();
control.Minimum = 0;
control.Maximum = 1;
control.DecimalPlaces = 2; // or something you want.
control.Increment = .01;   // step is .01

答案 1 :(得分:0)

创建继承TextBox的用户控件并为KeyPress添加事件,如下所示

public class MyTextBox:TextBox
{
    List<int> numberstobeallowed = Enumerable.Range(20, 340 - 20).ToList();
    public MyTextBox()
    {
        this.Leave += new EventHandler(MyTextBox_Leave);
    }

    void MyTextBox_Leave(object sender, EventArgs e)
    {
        if (numberstobeallowed.Contains(Convert.ToInt32(this.Text)))
            this.Text = string.Empty;
    }
}

希望这会有所帮助