フォームにラジオボタンを動的に作成しています。ユーザーに選択を解除させたいと思います。ユーザーのオプションは1つを選択するか、またはnoneを選択する必要があります(チェックボックスよりもラジオボタンを使用する方が安全です)。私はEventHandlerを使ってイベントを作成しようとしましたが、うまく動作するようになっていません。C#動的に作成されたラジオボタンの選択を解除するにはどうすればよいですか?
private void makeRadioButtons(string size, Panel pnl)
{
for (int i = 0; i < 2; i++)
{
RadioButton btn = new RadioButton();
btn.AutoSize = true;
btn.Name = i;
btn.Text = i;
btn.Location = new Point(100*i, 0);
btn.Click += new EventHandler(radioHandler);
pnl.Controls.Add(btn);
}
}
そしてここでは、私のイベントハンドラです:私はコンパイルするとき
private void radioHandler(object sender, EventArgs e)
{
RadioButton rdo = sender as RadioButton;
if(rdo.Checked)
{
rdo.Checked = false;
}
else
{
rdo.Checked = true;
}
}
私は、ボタンを取得しますが、選択または選択解除することはできません。ここ
は、私は、ボタンを作る持っているものですそれら。私は近くにいるように感じますが、ここで間違っていることを理解できません。
winformsまたはasp.net? –
クリックしたときに自動的にチェックされません( 'pnl.Controls'の他のチェックボックスがオフになっています)? _正確に何をしたいですか?また、 'rdo.Checked =!rdo.Checked; 'を設定するだけで' if'に変換することができることに注意してください。 –
ラジオボタンは、グループ内で1つだけの選択を強制するように設計されています。これがまさにあなたが求めているチェックボックスの機能性である場合、それらを使用する方が安全ですか? –