2012-08-08 62 views
1

如何在C++ builder的表单应用程序中按下ESC键时实现关闭(或退出)功能?在C++ builder的按键中实现关闭功能

此外,请注意,表单将有多个组件;它不能只是一个空的形式。 我试过使用此代码,但每次按ESC时都不起作用。

void __fastcall TForm1::FormKeyPress(TObject *Sender, System::WideChar &Key) { 
if (Key == VK_ESCAPE) { 
    this->Close(); 
}} 

上面的代码不与工作,因为焦点并非总是在表格上,如果有更多的像编辑框组件,则必须在每个事件禁用VK_ESCAPE并引用所需的功能(这是,当然,一个薄弱的解决方案)。

回答

3

使用TForm::KeyPreview财产和TForm::OnKeyPress事件是最好的方法,但一个alternativve将是把隐藏TButton的形式,并设置其Cancel属性设置为true,那么您可以在其OnClick事件致电Close()

3

将Form的KeyPreview属性设置为true。这样,键盘事件发生在窗体上,在主动控制之前。