只允许输入数字的TextBox控件-C#学习进阶

实例说明

开发一些应用软件时,要求用户录入数据,根据录入数据的类型和具体情况需要对数据进行处理,例如,在录入商品数量时,要求录入的数据必须是数字。为了防止用户录入错误的数据,提高工作效率,这时就需要在文本框中对录入的数据进行处理,如果录入的数据不符合要求,则给出信息提示。实例运行结果如图:

只允许输入数字的TextBox控件-C#学习进阶

技术要点

控制文本框中只能输入数字主要是通过TextBox控件的KeyPress事件实现的。KeyPress事件用来在控件有焦点的情况下,按下键盘中的按键时发生,其语法格式如下:

public event KeyPressEventHandler KeyPress

其中,KeyPressEventHandler表示将要处理 Control的 KeyPress事件的方法。其语法格式如下:

public delegate void KeyPressEventHandler (Object sender,KeyPressEventArgs e)

参数说明如下:

sender:事件源。

e:包含事件数据的KeyPressEventArgs。

KeyPressEventArgs对象有Handled属性和KeyChar属性。

(1)Handled属性

此属性获取或设置一个值,该值指示是否处理过KeyPress事件。其语法格式如下:

public bool Handled { get; set; }

属性值:如果处理过事件,则为True;否则为False。

(2)KeyChar属性

此属性获取或设置与按下的键对应的字符。其语法格式如下:

public char KeyChar { get; set; }

属性值:键盘键所对应的ASCII字符。

例如,用户可以使用 KeyChar获取或设置以下键:a-z、A-Z、Ctrl、标点符号、键盘顶部和数字键盘上的数字键、Enter键。下面示例判断用户是否按下回车键。代码如下:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            { MessageBox.Show("您按下回车键了"); }
        }

键盘所对应ASCII字符集:

只允许输入数字的TextBox控件-C#学习进阶

可自行查询

注意:在限制用户输入非0~9之间的数字的同时,不应限制用户输入“回车”和“退格”,否则将给用户带来不便。

实现过程

(1)新建一个Windows应用程序,将其命名为HardlyEnableFigure,默认窗体为Form1。

(2)在Form1窗体中添加一个TextBox控件,用于输入要验证的数字。

(3)主要程序代码。

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
   if ((e.KeyChar != 8 && !char.IsDigit(e.KeyChar))&&e.KeyChar!=13)//
   {
        //弹出信息提示
        MessageBox.Show("商品数量只能输入数字", "操作提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
        e.Handled = true;          //表示已经处理过了KeyPress事件
   }
}