【问题标题】:Implement close function on keypress in c++ builder在c ++ builder中实现按键关闭功能
【发布时间】:2012-08-05 11:27:04
【问题描述】:

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

另外,请注意表单将包含许多组件;它不能只是一个空表格。 我尝试使用此代码,但每次按 ESC 时它都不起作用。

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

上面的代码不起作用,因为焦点并不总是在表单上,​​如果你有更多像 EditBox 这样的组件,你必须在每个事件上禁用 VK_ESCAPE 并引用所需的函数(当然,弱解)。

【问题讨论】:

    标签: c++ winforms c++builder keypress vcl


    【解决方案1】:

    使用TForm::KeyPreview 属性和TForm::OnKeyPress 事件是最好的方法,但另一种方法是在表单上放置一个隐藏的TButton 并将其Cancel 属性设置为true,然后您可以调用@987654325 @ 在其OnClick 事件中。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 2010-12-11
        • 1970-01-01
        • 2013-11-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多