บางครั้งในสถานการณ์เช่นนี้ฉันคิดถึงวัยเยาว์เมื่อ Access เป็นพิษที่ฉันเลือกและฉันสามารถให้ปุ่มตัวเลือกแต่ละปุ่มในกลุ่มมีคุณค่าในตัวเอง
การแฮ็กของฉันใน C # คือการใช้แท็กเพื่อตั้งค่าและเมื่อฉันทำการเลือกจากกลุ่มฉันอ่านค่าของแท็กของปุ่มเรดิโอที่เลือก ในตัวอย่างนี้directionGroupคือกลุ่มที่ฉันมีปุ่มตัวเลือกสี่ห้าปุ่มที่มี "None" และ "NE", "SE", "NW" และ "SW" เป็นแท็กบนวิทยุอีกสี่ปุ่ม
ฉันใช้ปุ่มเพื่อจับค่าของปุ่มที่เลือกในเชิงรุกเนื่องจากการกำหนดตัวจัดการเหตุการณ์หนึ่งตัวให้กับเหตุการณ์ CHeckCHanged ของปุ่มทั้งหมดทำให้ปุ่มแต่ละปุ่มเริ่มทำงานเนื่องจากการเปลี่ยนหนึ่งปุ่มจะเปลี่ยนทั้งหมด ดังนั้นค่าของผู้ส่งจึงเป็น RadioButton ตัวแรกในกลุ่มเสมอ แต่ฉันใช้วิธีนี้เมื่อฉันต้องการค้นหาว่าตัวเลือกใดถูกเลือกพร้อมกับค่าที่ฉันต้องการดึงในคุณสมบัติแท็กของ RadioButton แต่ละรายการ
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());
}
FYI ฉันได้ทดสอบและใช้สิ่งนี้ในงานของฉันแล้ว
โจอี้