PDA

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



managment-barnamenevis
جمعه 01 اسفند 1393, 12:02 عصر
مثلا ما دو تا چک باکس داریم
میگیم

if(checkbox1.checked)
messagebox.show("checkbox1.checked")
else if (checkbox2.checked)
messagebox.show(checkbox2 checked)
اما فرض کنیم حدود 100 تا چک باکس داریم
اینطوری که تا فردا صب باید کد بنویسیم
راه حل بهتری هست
ممنون میشم کمک کنین.

abdullah20
جمعه 01 اسفند 1393, 12:24 عصر
foreach (Control ctrl in this.Controls) {
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
MessageBox.Show(chk.Name );


}
}

managment-barnamenevis
جمعه 01 اسفند 1393, 12:34 عصر
foreach (Control ctrl in this.Controls) {
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
MessageBox.Show(chk.Name );


}
}


کدو نوشتم ولی جواب نداد

abdullah20
جمعه 01 اسفند 1393, 12:46 عصر
چک باکس ها روی خود فرم هستند یا داخل پنل یا . . .

managment-barnamenevis
جمعه 01 اسفند 1393, 12:56 عصر
چک باکس ها روی خود فرم هستند یا داخل پنل یا . . .

داخل یه تب پیج بود. انتقالشون دادم روی فرم درست شد
ولی یه مشکل دیگه هست
من میخوام جای مسیج باکس از یه لیبل استفاده کنم
یعنی توی لیبل بنویسه مثلا چک باکس 1 و چک باکس 2 فعالن
اما این کد فقط آخرین چک باکسی که تیک خورده رو نشون میده

managment-barnamenevis
جمعه 01 اسفند 1393, 13:12 عصر
String m=""; private void button5_Click(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls)
{


if (ctrl is CheckBox)
{


CheckBox chk = (CheckBox)ctrl;

if (chk.Checked)
{
m = chk.Text +" "+ m;
//MessageBox.Show(chk.Name);
label5.Text=(" "+m+" ");
}
}


}
}

این متغیر سراسری m تعریف کردم واسش
بازم یه مشکل دیگه هست
مثلا اگه ما بارول چک باکس 1 و چک باکس 2 رو انتخاب کنیم
میزنه چک باکس 1 و چک باکس 2 تیک دارن
اما اگه چک باکس سوم رو هم تیک دار کنیم
یه بار دیگه میزنه چک با کس پ و 2 و 3
خود چک باکس 3 تنهارو اضافه نمیکنه

managment-barnamenevis
جمعه 01 اسفند 1393, 13:15 عصر
آقا دمت گرم خدایی
یه

else
{
m="";
}



بهش اضافه کردم درست شد.:قلب:

بیتا حکمت
جمعه 01 اسفند 1393, 13:17 عصر
string chknames = string.Empty;
foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
//MessageBox.Show(chk.Name);
chknames = chknames + chk.Name + Environment.NewLine;


}


}

MessageBox.Show(chknames);
}

managment-barnamenevis
جمعه 01 اسفند 1393, 13:35 عصر
string chknames = string.Empty;
foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
//MessageBox.Show(chk.Name);
chknames = chknames + chk.Name + Environment.NewLine;


}


}

MessageBox.Show(chknames);
}






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

abdullah20
جمعه 01 اسفند 1393, 14:38 عصر
label1.ResetText();
foreach (Control ctrl in this.Controls["groupBox1"].Controls)
{
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
label1.Text += chk.Name+Environment.NewLine ;

}
}

managment-barnamenevis
شنبه 02 اسفند 1393, 17:02 عصر
label1.ResetText();
foreach (Control ctrl in this.Controls["groupBox1"].Controls)
{
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
label1.Text += chk.Name+Environment.NewLine ;

}
}

داداش یه سوال دیگه
اگه برفرض مثال این چک باکس ها داخل دوتا گروپ باکس باشن
و این دوتا گروپ یاکس خودشون داخل یه پنل باشن
اونوقت چطوری میشه ازش استفاده کرد.

abdullah20
شنبه 02 اسفند 1393, 20:52 عصر
دوست عزیز خیلی سادس دیگه سوال پرسید نداره

label1.ResetText(); foreach (Control ctrl in this.Controls["panel1"].Controls["groupBox1"].Controls)
{
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
label1.Text += chk.Name+Environment.NewLine ;


}
}

managment-barnamenevis
شنبه 02 اسفند 1393, 21:05 عصر
اما واسه گروپ باکس دوم خطا میده
foreach (Control ctrl in this.Controls["panel1"].Controls["groupBox1"].Controls["groupBox2"].Controls)

managment-barnamenevis
شنبه 02 اسفند 1393, 21:18 عصر
دوست عزیز خیلی سادس دیگه سوال پرسید نداره

label1.ResetText(); foreach (Control ctrl in this.Controls["panel1"].Controls["groupBox1"].Controls)
{
if (ctrl is CheckBox)
{
CheckBox chk = (CheckBox)ctrl;
if (chk.Checked)
label1.Text += chk.Name+Environment.NewLine ;


}
}


اینم erroresh:ناراحت:128720