C#:KeyPress事件

KeyChar键值表(常用)

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

常用键的ASCII编码

ASCII编码对应字符功能
0NUL空字符
1SOH标题开始
2STX正文开始
3ETX正文结束
4EOT传输结束
5ENQ请求
6ACK收到通
7BEL响铃
8BS退格
9HT水平制表符
10LF换行键
11VT垂直制表符
12FF换页键
13CR回车键
14SO禁用切换
15SI启用切换

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

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

以上。

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值