कभी-कभी इस तरह की स्थितियों में मुझे अपने युवाओं की याद आती है, जब प्रवेश मेरी पसंद का जहर था, और मैं प्रत्येक रेडियो बटन को अपने स्वयं के मूल्य समूह में दे सकता था।
C # में मेरा हैक मूल्य सेट करने के लिए टैग का उपयोग करना है, और जब मैं समूह से चयन करता हूं, तो मैं चयनित रेडियोबॉटन के टैग का मूल्य पढ़ता हूं। इस उदाहरण में, दिशा समूह वह समूह है जिसमें मेरे पास "कोई नहीं" और "एनई", "एसई", "एनडब्ल्यू" और "एसडब्ल्यू" के साथ चार पांच रेडियो बटन हैं, जो अन्य चार रेडियोबॉटन पर टैग के रूप में हैं।
मैंने नियमित रूप से चेक किए गए बटन के मूल्य को पकड़ने के लिए एक बटन का उपयोग किया है, क्योंकि बटन के सभी के लिए एक ईवेंट हैंडलर को असाइन करने के कारण, CHeckCHanged ईवेंट के कारण EACH बटन को आग लग जाती है, क्योंकि एक बदलने से उन सभी में परिवर्तन होता है। तो प्रेषक का मान हमेशा समूह में पहला रेडियोबटन होता है। इसके बजाय, मैं इस पद्धति का उपयोग करता हूं, जब मुझे यह पता लगाने की आवश्यकता होती है कि कौन सा चुना गया है, उन मूल्यों के साथ जिन्हें मैं प्रत्येक रेडियोबटन के टैग गुण में प्राप्त करना चाहता हूं।
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 करें, मैंने अपने काम में इसका परीक्षण और उपयोग किया है।
एक छोटा सा सिक्का