当我按 Enter 键时,选项卡控件的选项卡页会关闭

Posted

技术标签:

【中文标题】当我按 Enter 键时,选项卡控件的选项卡页会关闭【英文标题】:Tab pages of a tab control get closed when I press enter 【发布时间】:2012-10-20 18:54:34 【问题描述】:

我有一个选项卡控件,其中一些对话框作为选项卡页,每个对话框中都有一个按钮来创建下一个选项卡,这些按钮被设置为默认按钮,所以当我按下回车键时,它会转到下一个选项卡。但是,在您按下这些按钮后,它们会被禁用,并且当您返回该选项卡时,它不允许客户端再次单击下一个按钮,问题是当我按下回车时,按钮被禁用并且没有不再使用默认按钮,标签页将关闭! 似乎输入关闭了对话框!但是当我更改选项卡并再次返回该选项卡时,再次显示对话框!所以这意味着输入不会破坏或关闭该对话框!

按钮启用时的对话框。按回车就像单击按钮: 创建下一个选项卡后的相同对话框: 当下一步按钮被禁用时按回车! 更改选项卡并再次返回该选项卡后的对话框!

我不明白它的行为!请注意,我没有为输入按钮编写任何内容,我只是将这些按钮设置为默认按钮,即使这些按钮不是默认按钮,也会发生这种情况!我该怎么办?

【问题讨论】:

很难猜,截图是代码 sn-p 的糟糕替代品。但是对话框的默认按钮就像 OK 按钮。它关闭对话框。 【参考方案1】:

对话框的默认操作(即当您按下回车键时调用的操作,如果焦点不在另一个按钮或捕获回车键的控件中)是调用 OnOk,默认情况下,OnOk 关闭对话框。 所以你必须重写对话框的 OnOK 函数并给它们一个空的主体:

void CMyTabDlg::OnOk()

    // Nothing, so it does not close the dialog

另外,您可以将默认按钮设置为其他按钮,但为了安全起见,我还是会做覆盖 OnOk 的事情。

【讨论】:

以上是关于当我按 Enter 键时,选项卡控件的选项卡页会关闭的主要内容,如果未能解决你的问题,请参考以下文章

在带有选项卡式控件的表单中,单击按钮会降低焦点选项卡页中的面板高度,如果移动到另一个选项卡并返回,则会更正

在 Lwuit 中,如何处理键盘导航事件?

导航到 Xamarin Shell 中的特定顶部选项卡页

WPF:如何在不禁用箭头键导航的情况下禁用选项卡导航?

从 TabControl 拖动时出现表单 ShowDialog 问题

自定义 TabControl 以关闭单个选项卡