2

SO私はWindowsフォームアプリケーションを持っています。選択したい食料品を示すテキストボックスがあります。選択できる 3 つのラジオ ボタンの回答と、その回答を送信するボタンがあります。私が欲しいのは、タブを使用してこれらのラジオボタンをナビゲートできるようにすることです。タブオーダーを試しましたが、うまくいきません。助言がありますか?

4

1 に答える 1

1

Windows Forms では、タブでグループに移動することしかできません。これを回避する 1 つの方法は、ボタンのそれぞれの周りにグループ ボックスを配置して、すべてのボタンを個別のグループに入れることです。

これにより、それらをタブで移動することができますが、これらは切り離されており、自動的に選択解除されません。これを行うには、選択時に発生するイベントに登録し、プログラムで他の選択を解除します。

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 に答える