C编程案例入门计算器之事件响应
上一节我们完成了界面设计,这节我们继续。
我们预期的是:输入框输入公式之后,按回车键,就开始计算。但默认情况下,在输入框中输入回车键,会导致内容换行,而不是计算。
如图,我敲了回车键以后,光标就跑到下一行了。这就要求程序能够截获输入框的按键,需要怎么做呢?
首先需要添加输入框的键盘响应事件,我们切换到事件窗口,拉动滚动条,找到Key开头的事件,发现有3个。
选中后,下方有提示。KeyDown是按下的时候触发;KeyUp是弹起的时候触发;KeyPress是按下后再抬起的时候触发;
很明显,我们是要在按下的时候就检测,于是双击KeyDown的位置,自动生成KeyDown事件处理代码。然后,我们在其中添加如下代码,结果如下: private void tbxInput_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode== Keys.Enter) { e.SuppressKeyPress = true; tbxInput.AppendText("r 计算结果"); } }
KeyEventArgs作为KeyDown事件的传入参数,包含了很多信息:KeyCode代表的是按键代码,Keys.Enter表示的就是回车键。SuppressKeyPress是禁止按键处理,因为在多行输入框中,回车键是属于特殊按键,如果不再需要处理回车键,就需要将此设置成true。AppendText是像tbxInput中添加字符串的意思,字符串中的"r "是转义符的写法,代表换行符和回车符,组合在一起就实现了换行的目的。
我们来看下代码执行效果:
接下来我们要做的就是解析字符串,形成标准的数学计算式,然后计算,得出结果再输出。
如何实现,我们下节继续。