【发布时间】:2015-02-20 21:28:01
【问题描述】:
我有一个 windows 窗体,如下所示。某些单选选项在按下按钮之前需要额外的信息(2 和 3),而有些则不需要。
问题是这样的:这应该如何用键盘导航?
默认行为是:
- 焦点在 radioButton1
- 向下箭头转到 radioButton2
- 向下箭头再次转到... textbox1
此时,向下箭头无处可去。 Tab 将转到 textbox2,然后是 button1。
radioButton3 无法通过键盘访问。
从选项卡排序中排除 textbox1 和 textbox2 (TabStop = False) 使 radioButton3 可访问,但现在文本框不再可访问。
我试过了:
- 从标签排序中排除 textbox1 和 textbox2(现在它们无法访问)
- 在 textbox1 中捕捉向下箭头并将焦点移动到 radioButton3(这感觉非常错误,并且会让人头疼)。
- 除非选中相应的单选框,否则禁用 textbox1 和 textbox2。 (不,这实际上使事情变得更糟)
我不想考虑的:
- 按钮后出现所需文本的提示。 (听起来很笨拙)
- 单选按钮下方的单个文本框。 (在这个应用程序中,文本框都有不同的验证,所以很痛苦)。
- 需要鼠标(不是选项)
处理这个问题的正确方法是什么?
【问题讨论】:
-
您想要向下箭头键循环浏览控件的顺序是什么?一种方法是覆盖
ProcessCmdKey,只让箭头键在单选按钮之间移动,然后当您选择一个有文本框的按钮时,自动将光标放在其中。 -
我本来希望(并且希望)箭头继续穿过单选按钮,而不是突然像在第二个按钮之后按下了一个选项卡。
标签: windows winforms user-interface