gpt4 book ai didi

c# - 如何正确更改 C# 中 RadioButton 组的当前选中的 RadioButton

转载 作者:行者123 更新时间:2023-11-30 22:19:15 25 4
gpt4 key购买 nike

我有一个 GroupBox 和一堆 RadioButtons。当他们有焦点时,我可以使用向上/向下键来遍历它们。

但是,当我手动更改已选中的 RadioButton 并按向上/向下键时,迭代将从更改已选中的 RadioButton 之前的点开始。问题是:

  • 当 RadioButton 获得焦点时,哪个控件处理事件对应于向上/向下键单击。

答案:要处理 TAB、ESC、RETURN 或 ARROW 按钮 KeyDown 的事件,您需要覆盖 IsInputKey控制的方法。或者覆盖 ProcessCmdKey 而不是 KeyDown

  • 如何正确更改当前选中的 RadioButton。

答案: 除了设置 radioButton.Checked = true。您需要将焦点放在它上面 - radioButton.Focus()

例子:我有一组 6 个 RadioButtons (0-5)。

  • 当前选中的是 RadioButton No.1 。
  • 我的功能更改已检查RadioButton 从 No.1 到 No.3。
  • 用户按下 Arrow_Up 并RadioButton No.0 变为选中状态,而不是 No.2。

最佳答案

  1. 什么事件对应于 RadioButton 上的上/下键点击?

    没有事件对应于您可以按下一个键而不松开但仍处理键命令的单个RadioButton。但是,您可以覆盖表单从 Form 继承的 ProcessCmdKey 方法:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
    Console.WriteLine("123");
    return false;
    }
  2. 如何访问RadioButton 组的内部索引器?

    TabIndex 属性。 没有单个RadioButton的内部索引。但是由于您将它们放在一个 GroupBox 上,它是一个 Control,并且有一个名为 Controls 的继承属性是它的子控件的集合。

例子中出现的问题,出现了TabIndex的问题。

Control 是大多数 WinForm 应用程序可视化组件的基类。它具有父/子层次结构,您放在 GroupBox 上的所有 RadioButton 都具有相同的父级,并且 GroupBox 本身拥有这些 RadioButton,并具有属性 Controls,您可以通过索引访问它们。

关于c# - 如何正确更改 C# 中 RadioButton 组的当前选中的 RadioButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15677407/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com