C#:KeyPress事件

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计算器

项目效果:
在这里插入图片描述

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

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

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

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

添加KeyPress事件

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

在这里插入图片描述
在函数中添加检查输入的代码:

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

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

以上。

猜你喜欢

转载自blog.csdn.net/liangzixx/article/details/108578897