PDA

View Full Version : uncheck شد ن همهradio button ها



ucnazard
شنبه 14 آبان 1390, 17:40 عصر
سلام
تو فرمم تقریبا 120 تایی رادیو باتن دارم میخام (ثبت نام)وقتی دکمه ثبت نام جدید رو زدم همه این رادیوباتن ها از حالت انتخاب خارج بشن
برا textboxها رو نوشتم که محتویاتش از بین بره اما رادیوباتن رو نمیدونم چیکار کنم میشه راهنمایی کنید
ممنون

hadi-z
شنبه 14 آبان 1390, 17:47 عصر
سلام
با دستور
foreach
میتونید راحت این کارو انجام بدید.

hadi-z
شنبه 14 آبان 1390, 17:57 عصر
اینجا یه نمونه کد برای انجام اینجور کارها هست


http://stackoverflow.com/questions/7025590/clear-all-radio-buttons-in-a-page

ucnazard
شنبه 14 آبان 1390, 18:03 عصر
این کار رو انجام دادم میدونین چون من چن تا چن این رادیو باتن ها رو تو پنل گذاشتم حالا باید برا هر پنل این foreachتکرار شه و این خیلی طولانیه میخاستم ببینم راه حل بهتری نیس؟
چطوری میتونم ارایه از پنلهای فرمم بسازم؟

hadi-z
شنبه 14 آبان 1390, 18:07 عصر
چرا آرایه؟؟؟؟؟؟؟؟؟؟

خب این foreach رو داخل یه foreach دیگه بذارید
تو foreach دومی تمام پنل هاتونو میگرده.

مثلا:

foreach(Control parent in groupBox2.Controls)
{
Panel panel = parent as Panel;
if (panel != null)
{
foreach (Control child in panel.Controls)
{
RadioBox radio = child as RadioBox;
if (radio != null)
{
if (!radio.Checked)
{
MessageBox.Show(radio.ToString());
break;//if AutoCheck of all radio buttons seted to true
}
}
}
}
}

wolf_majid
شنبه 14 آبان 1390, 18:10 عصر
یک تابع بازگشتی بنویسید که ورودی اون کنترل (Control) باشه
یک حلقه foreach بنویسید برای کنترل های داخل اون کنترل
سپس تابع را با نمونه گرفته شده صدا بزنید
و بعد برید سراغ شرط که آیا کنترل رادیو باتن است یا خیر و ...

اگه منظورم رو نگرفتید بگید تا کد بگذارم

ucnazard
شنبه 14 آبان 1390, 18:32 عصر
تقریبا میشه گفت نگرفتم:خجالت:

wolf_majid
شنبه 14 آبان 1390, 18:38 عصر
private void allRadioBtnOff(Control _ctrl)
{
foreach (Control ctrl in _ctrl.Controls)
{
allRadioBtnOff(ctrl);
if (ctrl is RadioButton)
(ctrl as RadioButton).Checked = false;
}
}

private void button3_Click(object sender, EventArgs e)
{
allRadioBtnOff(this);
}

sobaisobai
شنبه 14 آبان 1390, 22:07 عصر
سلام
اینتوری هم میشه
foreach (Control c in this.Controls)
{
if (c is RadioButton)
{
RadioButton rd = (RadioButton)c;
rd.Checked = false;
}
}