Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何设置文本框的数据类型_C#_Sql - Fatal编程技术网

C# 如何设置文本框的数据类型

C# 如何设置文本框的数据类型,c#,sql,C#,Sql,我正在构建一个连接到私有数据库的小应用程序。在我的应用程序中,我在文本框中输入数据,这些文本框在单击按钮后记录数据库中的数据。我面临的问题是,我想让某个文本框只接受整数,以防止输入错误类型的数据。尝试下面的方法,它将帮助您 下面的代码只接受数字和点(.) Designer.CS this.txtNumbers.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtNumbers_KeyPress); 代码隐藏: pr

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

尝试下面的方法,它将帮助您

下面的代码只接受
数字
点(.)

Designer.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");                    
        }
    }
}
至少这是最简单的

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

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

如果是合法密钥,则将eventargs参数上的
e.Handled
设置为true

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


如果您想要格式化/格式化显示,例如括号中的负片、千位分隔符、十进制分隔符、货币符号等,最好打开一个用户控件并将其全部封装在其中。

您可以使用专为数字设计的控件,
NumericUpDown
。它增加了对小数位数和最小/最大值的控制。

您使用的是winforms还是wpf。噢,非常感谢,它很管用!注意:您可能想查找十进制分隔符,而不是将其硬编码为“.”。这个处理复制粘贴的效果如何?@DanVerdolino:我已经更改了代码。。。我现在可以复制粘贴了。。