PDA

View Full Version : چک کردن موجود بودن کنترلی در مجموعه کنترل دیگری !!!



mehrdad1991h
سه شنبه 20 فروردین 1392, 22:56 عصر
سلام من میخوام چنین کاری کنم
این کد را ببینید منظورم را متوجه میشوید

foreach (Control ctrl in this.Controls)
{
if(ctrl in this.panel2.Controls)
{
}
}

الان این کد ارور میده
به این قسمت ارور میده
if(ctrl in this.panel2)
الان چجوری میتونم این کار را انجام بدم ؟

کاری که میخوام بکنم :
اینه که اول کار که فرم لود میشه کلیه کنترل ها را چک میکنه اگر هر کودوم در پنل مورد نظر بود در یه لیست ارایه قارشون میده بعد تو برنامه 6-7 قسمت داره که هر قسمت دکمه ریست مخصوص به همون قسمت را دارد تا روی اون دکمه کلیک میکنه از لیست ارایه کنترل ها را به حالت اول بر میگرداند
حالا دلیل این که از IF این وسط استفاده کردم به خاطر اینه که یکم در روند و سرعت برنامه تاثیر بزارم و سرعت زیاد بشه اگر بخوام برای هر پنل تموم کنترل ها را چک کنم و کنترل ها را جدا کنم زمان لود برنامه خیلی میره بالا میخوام با یک بار چک کردن کلیه ی کنترل ها تمومشون را جدا کنم


راه حل بدید لطفا
سپاس

Pis7Aller
سه شنبه 20 فروردین 1392, 23:44 عصر
متاسفانه فکر نکنم بشه آخه وقتی شما میاین یک سری control رو داخل یک panel قرار میدید و foreach میاد و کنترل های فرم بشمره نمیاد اون control های داخل پنل رو هم به حساب بیاره به زبان ساده تر فکر کنید شما 2 تا پنل دارید که داخل هر کدومشون 4 تا لیبل هست . حالا بیاید و یک text box و یک button رو خارج پنل ها بذارید و بیاید با فشار دادن اون دکمه ی خارج از پنل ها یک متغیری رو به ازای control هایی که در داخل foreach پیدا کردن اضافه کنه و در آخر توی text box نشون بده . میبینیم که جواب 4 بدست میاد نه 12 چون تو foreach داریم تمام contols های داخل فرم رو میشمریم نه داخل پنل رو پس مجبوریم تک تک با foreach ازشون استفاده کنیم .