때때로 이와 같은 상황에서 저는 Access가 제가 선택한 독이었던 청소년을 그리워하고 그룹의 각 라디오 버튼에 고유 한 가치를 부여 할 수있었습니다.
C #에서 내 해킹은 태그를 사용하여 값을 설정하는 것이며 그룹에서 선택하면 선택한 라디오 버튼의 태그 값을 읽습니다. 이 예에서 directionGroup 은 "None"과 "NE", "SE", "NW"및 "SW"가 다른 4 개의 라디오 버튼에 태그로 포함 된 4 개의 라디오 버튼이있는 그룹입니다.
하나의 이벤트 핸들러를 모든 버튼의 CHeckCHanged 이벤트에 할당하면 하나의 버튼을 변경하면 모두 변경되기 때문에 각 버튼이 실행되기 때문에 체크 버튼의 값을 캡처하기 위해 사전에 버튼을 사용했습니다. 따라서 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());
}
참고로, 나는 이것을 내 작업에서 테스트하고 사용했습니다.
조이