我有一个包含多个的表单UserControls
.
当按下用户控件内的按钮时,它将打开并添加另一个用户控件,包含一个文本框和2个按钮.
打开此用户控件后,焦点/光标将立即转到文本框.
按TAB键可将焦点从一个控件转移到另一个控件,在整个表单中移动.
所以基本上我想避免这种情况.
即,有一个UserControl
名为XXX 的对象.现在,当我单击其中的"打开编辑"按钮时,它会UserControl
在XXX中打开一个名为YYY 的新对象.
UserControl
YYY有一个文本框和2(保存和取消)按钮.
我想确保Tab键始终将焦点保持在YYY内,直到YYY关闭为止,单击Cancel按钮.
我不确定是否有广泛的TabStop
财产?或者我应该循环其他控件并将其设置TabStop
为FALSE?
考虑到在不同的类下有许多其他UserControl,它有点乏味.
有没有更简单的方法来实现这一目标?
其实你的问题是:
如何在用户控件中保持制表位?
您可以ProcessTabKey
在用户控件中覆盖要保持制表位的停止.
protected override bool ProcessTabKey(bool forward) { return this.SelectNextControl(this.ActiveControl, true, true, true, true); }
这样,制表位将保留在您的用户控件中.