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计算器
项目效果:
首先要明确一下这个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");
}
}
该项目的功能即得到实现。完整的代码工程和图片放在资源里了,有需要可以自行下载。
以上。