gpt4 book ai didi

.net - 禁用 TabControl 上的默认快捷方式

转载 作者:行者123 更新时间:2023-12-04 10:06:13 27 4
gpt4 key购买 nike

Alt text

Ctrl + PageUp/PageDown 和 Ctrl + Tab 是 TabControl 的默认快捷键。它们有助于在相邻选项卡之间移动。当我的焦点位于控件(此处为文本框)时,我希望 Ctrl + PageX 行为仅适用于外部选项卡(tab1、tab2)和内部选项卡(tab3、tab4)的 Ctrl + Tab 行为。为此,我需要禁用默认行为。有没有办法做到这一点?

我查看了 ProcessDialogKey 和 IsInputKey,但它们似乎只适用于单个键数据。不处理修饰符。

最佳答案

TabControl有不寻常的键盘快捷键处理,它们反射(reflect)到 OnKeyDown()方法。这样做是为了避免干扰选项卡页上控件的键盘处理。

您必须覆盖该方法。向您的项目添加一个新类并粘贴如下所示的代码。编译。将新控件从工具箱顶部拖放到您的 Form .

using System;
using System.Windows.Forms;

class MyTabControl : TabControl {
protected override void OnKeyDown(KeyEventArgs e) {
if (e.KeyData == (Keys.Tab | Keys.Control) ||
e.KeyData == (Keys.PageDown | Keys.Control)) {
// Don't allow tabbing beyond last page
if (this.SelectedIndex == this.TabCount - 1) return;
}
base.OnKeyDown(e);
}
}

关于.net - 禁用 TabControl 上的默认快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1952839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com