C#:KeyPress事件

  • KeyChar键值表(常用)
  • 实操C#窗体小型项目——BMI计算器
  • 添加KeyPress事件
  • 其中,计算公式 BMI= 体重(千克)/身高(米)/身高(米)


KeyChar键值表(常用)

KeyPress事件过程在截取Textbox或Combox控件输入的击键时,可立即测试击键的有效性或在字符输入时对其进行格式处理。
通常可以在处理限定输入类型时使用。

常用键的ASCII编码

ASCII编码

对应字符

功能

0

NUL

空字符

1

SOH

标题开始

2

STX

正文开始

3

ETX

正文结束

4

EOT

传输结束

5

ENQ

请求

6

ACK

收到通

7

BEL

响铃

8

BS

退格

9

HT

水平制表符

10

LF

换行键

11

VT

垂直制表符

12

FF

换页键

13

CR

回车键

14

SO

禁用切换

15

SI

启用切换

实操C#窗体小型项目——BMI计算器

项目效果:

keyPressEvent 没有反应_keyPressEvent 没有反应

首先要明确一下这个BMI计算器使用的时候,输入框的值只能是数字或者小数点。明确这一点后就可以就开始进行下一步,编写代码。

首先打开视图》》工具箱》》拖曳公共控件,标签label,文本框textBox、按钮button、图片框pictureBox 如项目效果所示。

其中显示结果的两个文本框的ReadOnly属性置为true。

重要的部分是,处理输入数据,以便用户输入错误的字母或符号导致程序错误退出。

添加KeyPress事件

点击文本框控件,在属性框上方点击 事件(闪电符号),找到KeyPress事件添加 自写函数 的函数名。

keyPressEvent 没有反应_Text_02


在函数中添加检查输入的代码:

private void keypressed(object sender, KeyPressEventArgs e)
        {
            //数字8是退格键的ASCII码,0X2E即十进制46,是符号‘.’的ASCII编码
            //Char.IsDigit(parameter)函数的功能是判断字符是否属于十进制数字类别。
            if (e.KeyChar != 8 && !Char.IsDigit(e.KeyChar) && e.KeyChar != 0x2E)
            {
                e.Handled = true;
            }
            //当先输入的是'.',可以使用退格键
            if (e.KeyChar == '.')   
            {
                //as运算符用于将表达式显式转换为给定类型(如果其运行时类型与该类型兼容)
                TextBox tb = sender as TextBox;
                //当先输入的为符号‘.’时,文本框显示的是“0.”
                if (tb.Text == "")
                {
                    tb.Text = "0.";
                    //select(parameter1,parameter2)函数选择文本框中的文本范围
                    //参数1和参数2 分别表示文本的起始和结束位置。
                    tb.Select(tb.Text.Length, 0);
                    e.Handled = true;
                }
            }
        }
其中,计算公式 BMI= 体重(千克)/身高(米)/身高(米)

所以,确定按钮的代码如下

private void button1_Click(object sender, EventArgs e)
        {
            double a;
            a = Convert.ToDouble(textBox2.Text) / Convert.ToDouble(textBox1.Text) / Convert.ToDouble(textBox1.Text);
            textBox3.Text = Convert.ToString(a);
            if (a > 28.0)
            {
                textBox4.Text = "肥胖";
                this.pictureBox2.Load(".\\img\\沙拉.png");//相对路径,从生成的可执行文件所在处算根目录
            }
            if (a < 18.4)
            {
                textBox4.Text = "偏瘦";
                this.pictureBox2.Load(".\\img\\牛奶.png");
            }
            if (a > 18.5 && a < 23.9)
            {
                textBox4.Text = "正常";
                this.pictureBox2.Load(".\\img\\正常.png");
            }
            if (a > 24.0&& a< 27.9)
            {
                textBox4.Text = "过重";
                this.pictureBox2.Load(".\\img\\蔬菜.png");
            }
        }

该项目的功能即得到实现。完整的代码工程和图片放在资源里了,有需要可以自行下载。

以上。