当我在子用户控件中使用它时,选项卡索引焦点转到父控件。 我们如何只关注子用户控件
答案 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; }