我有GroupBox
一堆RadioButtons
。当他们有焦点时,我可以使用向上/向下键来遍历它们。
但是当我手动更改 checkRadioButton
并按下 up/down 时,迭代会从更改之前的位置开始进行 checked RadioButton
。问题是:
- 当 RadioButton 具有焦点时,控件处理事件对应于上/下键单击。
答:
要处理 TAB、ESC、RETURN 或 ARROW 按钮的事件,KeyDown
您需要覆盖IsInputKey
控件的方法。或覆盖ProcessCmdKey
而不是KeyDown
.
- 如何正确更改当前选中的 RadioButton。
答:
除了设置radioButton.Checked = true
。你需要把注意力集中在它上面—— radioButton.Focus()
。
示例:我有 6 个单选按钮 (0-5) 组。
- 当前检查的是 RadioButton No.1 。
- 我的功能将选中的 RadioButton 从 No.1 更改为 No.3 。
- 用户按下 Arrow_Up 并且 RadioButton No.0 变为选中而不是 No.2。