我如何限制numericupdown控件只接受整数

时间:2011-05-13 06:46:20

标签: .net integer numericupdown

我有一个windows numericupdown控件。我想限制它,以便用户只能输入整数。我怎么做?目前用户也可以输入十进制数。 谢谢 PS我正在使用.net

5 个答案:

答案 0 :(得分:5)

我做了一些实验,发现了这个解决方法:

    private void numericUpDown1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar < 48 || e.KeyChar > 57)
        {
            e.Handled = true;
        }
    }

这样你就无法输入千位分隔符,但你可以通过首先找出千位分隔符并添加它来添加它。

答案 1 :(得分:1)

DecimalPlaces属性设置为零。

答案 2 :(得分:0)

如果您使用的是AjaxControlToolkit,则可以将FilteredTextBoxExtender与NumericUpDownExtender结合使用:

<asp:FilteredTextBoxExtender ID="FilteredTextBoxExtender" runat="server" TargetControlID="TextBoxNums" FilterType="Numbers">
</asp:FilteredTextBoxExtender>
<asp:NumericUpDownExtender ID="NumericUpDownExtender" runat="server" TargetControlID="TextBoxNums" Width="10">
</asp:NumericUpDownExtender>
<asp:TextBox ID="TextBoxNums" runat="server"></asp:TextBox>

答案 3 :(得分:0)

如果您有权访问 DevExpress控件,则应使用SpinEdit控件并将其Properties.IsFloatValue设置为 false

答案 4 :(得分:0)

我使用它是为了不允许在当前系统上输入数字小数点分隔符:

private void NumericUpDown_KeyPress(object sender, KeyPressEventArgs e)
{
    // Do not accept the default decimal separator
    char sep = Convert.ToChar(Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator);
    if (e.KeyChar == sep)
    {
        e.Handled = true;
    }
}

其他一切正常(退格等)