2012-08-08 68 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。這樣,鍵盤事件發生在窗體上,在主動控制之前。