PDA

View Full Version : بررسی رادیو باتن های چک دار



managment-barnamenevis
چهارشنبه 07 تیر 1402, 17:58 عصر
154759


من یک پنل دارم

که داخلش چندتا گروپ باکس وجود داره

داخل هر گروپ باکس تعدادی دیگه گروپ باکس وجود داره
که داخل هر کدوم دوتا رادیو باتن وجود داره

من میخوام چک کنه
اگه یکیشون تیک خورده هردو رادیو باتن سبز بشن
اگه هیچکدوم تیک نخوردن
هر دوتا رادیو باتن قرمز بشن



اینم کدم هست

اما مشکل اینجاست وقتی یکی تیک میخوره کل اون گروپ باکس رادیو باتن هاش سبز میشن



foreach (GroupBox groupBox in panel1.Controls.OfType<GroupBox>()){
bool allUnchecked = true;
foreach (GroupBox groupBox2 in groupBox.Controls.OfType<GroupBox>())
{
RadioButton firstRadioButton = null;
foreach (RadioButton radioButton in groupBox2.Controls.OfType<RadioButton>())
{
if (firstRadioButton == null)
{
firstRadioButton = radioButton;
}
else
{
if (radioButton.Checked)
{
// حداقل یکی از رادیو باتن‌ها چک شده است، هر دو را سبز کنید
firstRadioButton.ForeColor = Color.Green;
radioButton.ForeColor = Color.Green;
allUnchecked = false;
}
}
}
}


if (allUnchecked)
{
foreach (GroupBox groupBox2 in groupBox.Controls.OfType<GroupBox>())
{
foreach (RadioButton radioButton in groupBox2.Controls.OfType<RadioButton>())
{
// هیچکدوم از رادیو باتن‌ها چک نشده‌اند، هر دو را قرمز کنید
radioButton.ForeColor = Color.Red;
}
}
}
}

Mahmoud.Afrad
پنج شنبه 08 تیر 1402, 04:00 صبح
foreach (GroupBox groupBox in panel1.Controls.OfType<GroupBox>())
{
foreach (GroupBox groupBox2 in groupBox.Controls.OfType<GroupBox>())
{
var radioButtons = groupBox2.Controls.OfType<RadioButton>().ToList();


// حداقل یکی از رادیو باتن‌ها چک شده است، هر دو را سبز کنید
if (radioButtons[0].Checked || radioButtons[1].Checked)
{
radioButtons[0].ForeColor = Color.Green;
radioButtons[1].ForeColor = Color.Green;
}
else // هیچکدوم از رادیو باتن‌ها چک نشده‌اند، هر دو را قرمز کنید
{
radioButtons[0].ForeColor = Color.Red;
radioButtons[1].ForeColor = Color.Red;
}
}
}

managment-barnamenevis
پنج شنبه 08 تیر 1402, 15:08 عصر
foreach (GroupBox groupBox in panel1.Controls.OfType<GroupBox>())
{
foreach (GroupBox groupBox2 in groupBox.Controls.OfType<GroupBox>())
{
var radioButtons = groupBox2.Controls.OfType<RadioButton>();


// حداقل یکی از رادیو باتن‌ها چک شده است، هر دو را سبز کنید
if (radioButtons[0].Checked || radioButtons[1].Checked)
{
radioButtons[0].ForeColor = Color.Green;
radioButtons[1].ForeColor = Color.Green;
}
else // هیچکدوم از رادیو باتن‌ها چک نشده‌اند، هر دو را قرمز کنید
{
radioButtons[0].ForeColor = Color.Red;
radioButtons[1].ForeColor = Color.Red;
}
}
}




دوست عزیز زیز
radioButtons[0] و همچنینradioButtons[1]

خط قرمز می کشه و شناسایی نمیشه متاسفانه

Mahmoud.Afrad
شنبه 10 تیر 1402, 22:15 عصر
خط۵ متد tolist را فراخوانی کنید. کد را اصلاح کردم

managment-barnamenevis
یک شنبه 11 تیر 1402, 18:26 عصر
foreach (GroupBox groupBox in panel1.Controls.OfType<GroupBox>())
{
foreach (GroupBox groupBox2 in groupBox.Controls.OfType<GroupBox>())
{
var radioButtons = groupBox2.Controls.OfType<RadioButton>().ToList();


// حداقل یکی از رادیو باتن‌ها چک شده است، هر دو را سبز کنید
if (radioButtons[0].Checked || radioButtons[1].Checked)
{
radioButtons[0].ForeColor = Color.Green;
radioButtons[1].ForeColor = Color.Green;
}
else // هیچکدوم از رادیو باتن‌ها چک نشده‌اند، هر دو را قرمز کنید
{
radioButtons[0].ForeColor = Color.Red;
radioButtons[1].ForeColor = Color.Red;
}
}
}

درود استاد عزیز بسیار عالی بود ممنونم