PDA

View Full Version : مبتدی: دسترسی به کنترل های داخل پنل با اندیس



mehran6764
چهارشنبه 23 مرداد 1392, 20:54 عصر
foreach (Control ctrl in this.Controls)
{
if (ctrl is Button)
{
Button CurrentButton = (ctrl as Button);
if (CurrentButton.Tag != null)
{
int tag = int.Parse(CurrentButton.Tag.ToString());
if (tag <= 10)
{
CurrentButton.Text = "your Text";
}
}
}
}






دوستان ، من با استفاده از کد بالا می تونم کنترلی رو که مقدار خاصیت تگش از 10 کمتر هست رو پیدا کنم ولی هر کاری می کنم این کد عناصر داخل پنل رو نمی تونه پیدا کنه .
اجازه بدین سوالمو واضخ تر ببرسم : من روی فرم یک پنل دارم و داخل پنل گروب باکس و داخل گروب باکس ها رادیو باتن -- حالا کدی مشابه کد بالا میخوام که بتونم بصورت ارایه ای به خاصیت انها دسترسی داشته باشم

از این حالت هم استفاده کردم جواب نداد




foreach (Control ctrl in panel1.Controls)

khokhan
چهارشنبه 23 مرداد 1392, 21:05 عصر
دوستان ، من با استفاده از کد بالا می تونم کنترلی رو که مقدار خاصیت تگش از 10 کمتر هست رو پیدا کنم ولی هر کاری می کنم این کد عناصر داخل پنل رو نمی تونه پیدا کنه .
اجازه بدین سوالمو واضخ تر ببرسم : من روی فرم یک پنل دارم و داخل پنل گروب باکس و داخل گروب باکس ها رادیو باتن -- حالا کدی مشابه کد بالا میخوام که بتونم بصورت ارایه ای به خاصیت انها دسترسی داشته باشم


یه چیزی شبیه این :لبخند:


for (i = 0; i <= Panel1.Controls.Count(); i++) {
RadioButton rb = default(RadioButton);
rb = (RadioButton)Panel1.FindControl("rb5");
if (rb.Checked == true) {
Response.Write(rb.Checked.ToString);
}
i = i + 1;
}

mehran6764
پنج شنبه 24 مرداد 1392, 14:32 عصر
من مشکلم حل شد اما شاید کس دیگه ای نیاز داشته باشه
بصورت دقیق تر به این شکل میشه استفاده کرد





foreach (Control c in this.panel1.Controls)
{
if (c.Controls.Count > 0)
{
foreach (Control c2 in c.Controls)
{
if (c2.GetType().FullName == "System.Windows.Forms.RadioButton")
{

((RadioButton)c2).Text = "you text ";
}


}
}