将Tab键顺序限制为单个用户控件

时间:2014-04-07 17:28:02

标签: c# winforms

当我在子用户控件中使用它时,选项卡索引焦点转到父控件。 我们如何只关注子用户控件

3 个答案:

答案 0 :(得分:0)

通常,您可以通过打开属性面板,不希望使用选项卡导航的控件,以及将TabStop设置为false来执行此操作。但我不确定这是否能解决你的特殊情况。

答案 1 :(得分:0)

这种行为是错误的。焦点将始终更改为您在UI上使用的控件。通过强制关注选项卡索引会产生更多问题。

例如: 向控件添加新操作,当用户激活它时,它会聚焦选项卡索引。很快你就会意识到你无法正确使用自定义控件上的任何控件,因为焦点总是切换到制表符索引控件。

如果你想把焦点放在标签索引上,那么用户可以用箭头键在标签之间进行选择,你应该采用另一种方式:

将父表单的属性KeyPreview编辑为true。在表单中添加KeyPress事件,然后执行选项卡切换事件。

答案 2 :(得分:0)

重写processDialogKey方法。并在子用户控件中使用它,它不会转到父级。

protected override bool ProcessDialogKey(Keys keyData)         {             if(keyData!= Keys.Tab)             {                 return base.ProcessDialogKey(keyData);             }             this.ButtonsPanel.SelectNextControl(ActiveControl,true,true,false,true);             返回false;         }