2

所以我有一个 Windows 窗体应用程序,有一个文本框告诉你要选择什么杂货。您可以从中选择 3 个单选按钮答案和一个提交该答案的按钮。我想要的是能够使用 tab 浏览这些单选按钮。我已经尝试过标签顺序的事情,但它不起作用。有什么建议么?

4

1 回答 1

1

Windws Forms 只允许您通过 Tab 进入组。解决它的一种方法是通过在每个按钮周围放置组框来将所有按钮放在单独的组中。

尽管这允许您在它们之间切换,但它们现在是脱节的并且不会自动取消选择。为此,请注册在选择时触发的事件并以编程方式取消选择其他事件。

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。

于 2012-10-06T09:41:59.220 回答