本文主要是介绍浅析OnKeyPress事件和OnKeyDown、OnKeyUp事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
OnKeyPress事件OnKeyPress事件是在用户按下键盘上任何一个可打印的字符时发生,只有能接收键盘输入的组件才有OnKeyPress事件。我们常常利用OnKeyPress事件截取在编辑框和组合框组件中所输入的击键,还可以立即测试击键的有效性或在字符输入时对其进行一定的格式处理。
例如,在TEdit组件上捕获OnKeyPress事件,判断输入的是否是小写字母,如果是,将其转换为大写字母,代码如下:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if (Key >= 'a' && Key <= 'z')
{
Key += 'A' - 'a';
}
}
将Key的值改变为0时可取消击键,这样一来对象便接收不到字符,我们可以利用这个特点来屏蔽某些字符。例如,有时候我们只允许用户输入数字,则加入如下代码:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
if (Key < '0' || Key > '9')
{
Key = 0;//取消刚才输入的字符
}
}
注意:OnKeyPress事件可以引用任何可打印的键盘字符,一个来自标准字母表的字符或少数几个特殊字符之一的字符与 CTRL 键的组合,以及 ENTER 或 BACKSPACE 键,但它并不能识别功能键(F1~F12),上下左右键,Shift键,Ctrl键以及Alt键等特殊控制键或者是组合键,要捕获这些键可以采用OnKeyDown和OnKeyUp事件。
OnKeyDown/OnKeyUp事件
当按下某个键不放时,产生OnKeyDown事件;释放按键时,则产生OnKeyUp事件。虽然 OnKeyDo
这篇关于浅析OnKeyPress事件和OnKeyDown、OnKeyUp事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!