如何为文本框设置数据类型[重复]

Posted

技术标签:

【中文标题】如何为文本框设置数据类型[重复]【英文标题】:How to Set a data type for a textbox [duplicate] 【发布时间】:2013-03-30 18:01:54 【问题描述】:

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

【问题讨论】:

你使用的是winforms还是wpf。 【参考方案1】:

试试下面的方法会对你有所帮助...

以下代码仅接受Numbersdots(.)

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");                    
        
    

【讨论】:

哦,非常感谢,成功了! 注意可能要查找小数点分隔符,而不是将其硬编码为 '.' 这个处理复制粘贴的效果如何? @DanVerdolino :我已经更改了我的代码...我现在可以处理复制和粘贴...【参考方案2】:

这是最简单的。

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

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

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

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于如何为文本框设置数据类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何为列表框中的每个项目设置不同的工具提示文本?

如何为数据框中的复杂列创建包含数组(案例类)的udf

如何为inet设置sequelize postgres模型类型?

如何为SSRS报表服务器的用户创建常见问题解答?

角度材料数据表 - 如何为具有提前类型/自动完成搜索的列设置 filterPredicate?

如果字符串包含整数,如何为字符串设置文本框