热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#:KeyPress事件

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

C#:KeyPress事件

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

KeyChar键值表(常用)

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

常用键的ASCII编码

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

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

项目效果:
《C#:KeyPress事件》

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

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

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

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

添加KeyPress事件

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

《C#: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");
}
}

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

以上。


推荐阅读
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • 本文介绍了如何使用n3-charts绘制以日期为x轴的数据,并提供了相应的代码示例。通过设置x轴的类型为日期,可以实现对日期数据的正确显示和处理。同时,还介绍了如何设置y轴的类型和其他相关参数。通过本文的学习,读者可以掌握使用n3-charts绘制日期数据的方法。 ... [详细]
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • 1关于字符串相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起:str_catpython!str_cat输出:python!把很长 ... [详细]
  • java io换行符_Java IO:为什么从stdin读取时,换行符的数字表示出现在控制台上?...
    只是为了更好地理解我在讲座中听到的内容(关于Java输入和输出流),我自己做了这个小程序:publicstaticvoidmain(String[]args)thro ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 查找给定字符串的所有不同回文子字符串原文:https://www ... [详细]
  • Non-ASCIIhelponitsownisOK: ... [详细]
author-avatar
dsvd2010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有