C# 带单选按钮的选项卡顺序

C# 带单选按钮的选项卡顺序,c#,tab-ordering,C#,Tab Ordering,所以我有一个windows窗体应用程序,有一个文本框,告诉你要选择什么杂货项目。有3个单选按钮可供选择答案,还有一个按钮可提交该答案。我想要的是能够使用tab在这些单选按钮中导航。我已经试过了付账单,但它不起作用。有什么建议吗?Windws表单只允许您在组中添加选项卡。破解的一种方法是将所有按钮放在单独的组中,每个按钮周围都放上组框 虽然这允许您通过选项卡来查看它们,但它们现在是不连续的,不会自动取消选择。为此,注册在选择时触发的事件,并以编程方式取消选择其他事件 namespace Windo

所以我有一个windows窗体应用程序,有一个文本框,告诉你要选择什么杂货项目。有3个单选按钮可供选择答案,还有一个按钮可提交该答案。我想要的是能够使用tab在这些单选按钮中导航。我已经试过了付账单,但它不起作用。有什么建议吗?

Windws表单只允许您在组中添加选项卡。破解的一种方法是将所有按钮放在单独的组中,每个按钮周围都放上组框

虽然这允许您通过选项卡来查看它们,但它们现在是不连续的,不会自动取消选择。为此,注册在选择时触发的事件,并以编程方式取消选择其他事件

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        private List<RadioButton> allMyButtons;

        public Form1()
        {
            InitializeComponent();
            allMyButtons = new List<RadioButton>
            {
                radioButton1,
                radioButton2
            };
        }

        private void radioButton_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton sendingRadio = (sender as RadioButton);
            if(sendingRadio == null) return;
            if(sendingRadio.Checked == true){
                foreach(var rb in (from b in allMyButtons where b != sendingRadio select b))
                {
                    rb.Checked = false;
                }
            }
        }

    }
}
我对这种方法进行了测试,它似乎很管用


形式不是现代的做事方式。考虑向WPF移动新项目。

为什么不使用下拉列表呢?听起来更合适。你可以在按键事件中捕捉tab键,然后自己处理。或者从单选按钮类继承并扩展它以处理tab键按下。这是单选按钮的默认行为。如果要更改它,可能需要将其子类化并重新实现键盘行为。或者-可能是,您可以创建自己的单选按钮。