c# - 如何防止将字符串 (a-z) 粘贴到 C# 中的文本框(仅限数字)

标签 c# .net

<分区>

最近我注意到,一些聪明的用户在我的一个项目中的 KeyPress 事件期间在 TextBox 中传递字符串(字母),只允许数字值(0-9)。不幸的是,NVARCHAR 中的数据库列类型,这就是数据插入操作以无效数据完成的原因。我的项目 (Winform) 足够大,可以更改该列的数据类型(NVARCHAR 到 INT)。在 SQL Server 中计算该列的 SUM 时出错。 这是我的仅用于数字验证的 KeyPress 事件。

private void txtInputValue_KeyPress(object sender, KeyPressEventArgs e)
{
    if (!char.IsDigit(e.KeyChar)) e.Handled = true;         //Just Digits
    if (e.KeyChar == (char)8) e.Handled = false;            //Allow Backspace
}

现在我怎样才能防止用户停止粘贴除数字 (0-9) 之外的一些无效数据。 在此先感谢您的帮助。

最佳答案

假设您的项目是 WinForms - 您走错了路。

看起来您只需要 - 是 MaskedTextBox .

在该控件中,您可以为“仅限数字”掩码设置 Mask 属性,防止从键盘和粘贴输入“非数字”字符。

参见 MSDN用于掩码格式的引用。

关于c# - 如何防止将字符串 (a-z) 粘贴到 C# 中的文本框(仅限数字),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27423448/

相关文章:

c# - 当 ObservableCollection 值更新时,WPF Datagrid 绑定(bind)不更新

c# - 当其他线程正在使用字典时,在字典中合并修改的好方法是什么?

.net - 根据.net中的对象标识生成哈希码

c# - 我可以控制分配给互操作程序集的版本号吗?

c# - 用于在 .net 中发送电子邮件的库

c# - 将视频流传输到YouTube(API)

c# - 在 C# 中获取字符串中的日期

c# - 从数据库表生成实体类

.net - 寻找实时网络服务器分析包

c# - 私有(private)局部变量的下划线?