このような状況では、Accessが私の選択した毒だったとき、私は私の青春を恋しく思い、グループの各ラジオボタンに独自の値を与えることができました。
C#でのハックは、タグを使用して値を設定することです。グループから選択を行うと、選択したラジオボタンのタグの値を読み取ります。この例では、directionGroupは、「None」と「NE」、「SE」、「NW」、「SW」を他の4つのラジオボタンのタグとして持つ4つの5つのラジオボタンがあるグループです。
1つのイベントハンドラーをすべてのボタンのCHeckCHangedイベントに割り当てると、1つのボタンを変更するとすべてが変更されるため、ボタンを積極的に使用して、チェックされたボタンの値をキャプチャしました。したがって、senderの値は常にグループの最初のRadioButtonです。代わりに、どのメソッドが選択されているかを調べる必要があるときに、このメソッドを使用します。取得する値は、各RadioButtonのTagプロパティで取得します。
private void ShowSelectedRadioButton()
{
List<RadioButton> buttons = new List<RadioButton>();
string selectedTag = "No selection";
foreach (Control c in directionGroup.Controls)
{
if (c.GetType() == typeof(RadioButton))
{
buttons.Add((RadioButton)c);
}
}
var selectedRb = (from rb in buttons where rb.Checked == true select rb).FirstOrDefault();
if (selectedRb!=null)
{
selectedTag = selectedRb.Tag.ToString();
}
FormattableString result = $"Selected Radio button tag ={selectedTag}";
MessageBox.Show(result.ToString());
}
ちなみに、私はこれをテストして仕事で使用しました。
ジョーイ