4

我正在构建一个连接到私有数据库的小型应用程序。在我的应用程序中,我在单击按钮后在数据库中记录数据的文本框中输入数据。我面临的问题是我想让某个文本框只接受整数,以防止输入错误类型的数据。

4

3 回答 3

5

像下面这样尝试它会帮助你...

下面的代码只接受Numbersdots(.)

设计师.CS

this.txtNumbers.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtNumbers_KeyPress);

代码背后:

private void txtNumbers_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsControl(e.KeyChar)
        && !char.IsDigit(e.KeyChar)
        && e.KeyChar != '.')
    {
        e.Handled = true;
    }

    if (e.KeyChar == '.'
        && (sender as TextBox).Text.IndexOf('.') > -1)
    {
        e.Handled = true;
    }
}

处理复制和粘贴...

private void textBox1_TextChanged(object sender, EventArgs e)
{
    int result;
    if (txtNumbers.Text != "")
    {
        if (!int.TryParse(txtNumbers.Text, out result))
        {
            txtNumbers.Text = "";
            MessageBox.Show("Invalid Integer");                    
        }
    }
}
于 2013-04-08T15:21:33.917 回答
0

最简单的。

向文本框添加按键事件处理程序

eventarg 参数具有被按下的键。( e.KeyChar)

如果它不是e.Handled将 eventargs 参数设置为 true 的合法键。

不要忘记允许退格、剪切、复制和粘贴等通过。如果你想要负数,减号是允许的,但只能作为第一个字符。

如果您想要格式化/格式化显示,例如括号中的负数、千位分隔符、小数分隔符、货币符号等,最好打开用户控件并将其全部包含在其中。

于 2013-04-08T15:26:38.190 回答
0

您可以使用专为数字设计的控件,NumericUpDown. 它使您可以更好地控制小数位和最小值/最大值。

于 2013-04-08T15:41:56.090 回答