PDA

View Full Version : استفاده از دستور Dispose برای از بین بردن کنترل های یک مجموعه



pouyansaraf
چهارشنبه 09 آذر 1390, 13:34 عصر
با سلام

من یک FlowLayoutPanel دارم که در آن ( در زمان اجرا چندین ) چندین Panel درست میشود
حال دکمه ای را اختصاص داده ام که تمامی کنترل هایی که در آن FlowLayoutPanel قرار دارند و از جنس Panel میباشند را همزمان پاک کند
ولی این دکمه نصبت به تعداد Panel های ساخته شده بعضی اوقات 4 تا بعضی اوقات 6 تا و گاهی 1 از Panel ها را پاک میکند
فکر میکنید مشکل از کجا است؟

کد پاک کردن کنترل های Panel در یک FlowLayoutPanel
البته در Panel های من 3 تا کمه و یک تکس باز نیز قرار دارد
فکر کنم وقتی Panel را Dispose میکنم کنترل های داخل آن نیز پاک میشوند

For Each obj As Control In FlowLayoutPanel1.Controls
If TypeOf obj Is Panel Then
obj.Dispose()
End If
Next

pouyansaraf
پنج شنبه 10 آذر 1390, 11:24 صبح
بابا
یکی نیست جواب مارو بده
دوستان کم لطفی نفرمایید

Hybrid
پنج شنبه 10 آذر 1390, 16:39 عصر
سلام دوست عزیز اگه میخوای که همه ی اشیا درون Flowlayoutpanel شما panel باشند و داخل اون پنل ها مثلا چند شی داشته باشی برای پاک کردن درون flowlayoutpanel میتونی قطعه کد زیر رو به کار ببری البته اگه صورت سوال رو خوب متوجه شده باشم...



FlowLayoutPanel1.Controls.Clear();

FlowLayoutPanel1.Dispose();

pouyansaraf
پنج شنبه 10 آذر 1390, 17:01 عصر
با سلام
فقط میخواهم Panel ای که در زمان اجرا ساخته میشوند را حذف کنم و بقیه کنترل ها را نیاز دارم.
بخاطر همین شرط گذاشته ام که کنترل هایی که از نوع Panel هستند حذف شود
این روش حذف میکند ولی همه را نه و دکمه حذف را باید چند بار بزنم تا همه را حذف کند

میتوانم همه را حذف کنم و کنترل های مورد نیازم را دوباره بسازم
ولی نه این کار مثل این است که غذا را دور سرم بچرخانم و بخورم
با remove هم همین داستان را دارم

pouyansaraf
پنج شنبه 10 آذر 1390, 18:08 عصر
مشکل من اینه
همراه با مثال
با تشکر