PDA

View Full Version : چک کردن فرم های موجود در حافظه



Clever_MRG
چهارشنبه 16 فروردین 1385, 00:34 صبح
سلام .
یه قطعه کد می خوام که چک کنه آیا فرم مورد نظر من در حافظه وجود داره یا نه و اگه وجود نداره
اونو لود کنه.
در ضمن تفاوت این دستورات رو هم بگین:

me.form.dispose

me.close
ممنون می شم اگه جواب بدین.

meh_secure
چهارشنبه 16 فروردین 1385, 01:02 صبح
Dispose کلیه متعلقات مربوط به Object رو در حافظه از بین میبره.

Hamedm
چهارشنبه 16 فروردین 1385, 01:08 صبح
سلام

یه قطعه کد می خوام که چک کنه آیا فرم مورد نظر من در حافظه وجود داره یا نه و اگه وجود نداره اونو لود کنه.باید فرمهای لود شده رو در یک کلکسیون نگه داری.

Dispose بیشتر برای زمانی که میخواهیم کلاسی رو از حافظه پاک کنیم و نیز Garbage لینکهای اون کلاسو از Heap پاک کنه، مورد استفاده قرار میگیره.

در پناه حق موفق باشید و پرتوان

Clever_MRG
چهارشنبه 16 فروردین 1385, 10:37 صبح
باید فرمهای لود شده رو در یک کلکسیون نگه داری

بعد از اینکه این کار رو انجام دادم چطوری می تونم چک کنم که آیا فرم من در حافظه هست یا نه

اگه ممکنه یک مثال بزنید .

Hamedm
چهارشنبه 16 فروردین 1385, 11:47 صبح
سلام

بعد از اینکه این کار رو انجام دادم چطوری می تونم چک کنم که آیا فرم من در حافظه هست یا نه

اگه ممکنه یک مثال بزنید .ببین .NET کلکسیونهای مختلفی برای کارهای گوناگونی داره. اما بهترین کلکسیون برای کار با فرمها HashTable است.

در پناه حق موفق باشید و پرتوان

habedijoo
چهارشنبه 16 فروردین 1385, 15:32 عصر
سلام به همه

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



For Each frm As Form In My.Application.OpenForms
MsgBox(frm.Name)
Next

Clever_MRG
چهارشنبه 16 فروردین 1385, 18:15 عصر
اقای عابدی جو از راهنمایتون ممنونم چک می کنم ببینم جواب می ده ؟

Hamedm
چهارشنبه 16 فروردین 1385, 21:35 عصر
سلام به همه

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



For Each frm As Form In My.Application.OpenForms
MsgBox(frm.Name)
Next

درسته. کد آقای عابدی جو (به قول جناب زواری عابد هدایت جو :لبخند:) درسته. اما این کد برای 2005 است. پست من براساس بر این ذهنیت فرستاده شده است که شما منظورتون 2003 است.

در پناه حق موفق باشید و پرتوان

meh_secure
پنج شنبه 17 فروردین 1385, 00:22 صبح
آیا این کد فقط فرم های باز را نشان می دهد و یا همه ی فرم ها رو؟؟

Clever_MRG
پنج شنبه 17 فروردین 1385, 13:31 عصر
این طور که من تست کردم لیست فرمهای باز رو نشون می ده البته به قول آقا حامداین کد برای ورژن 2005 اگه ورژن 2003 رو هم دارین بدین

meh_secure
جمعه 18 فروردین 1385, 14:29 عصر
خب پس چطور میشه لیست تمامی فرم ها (اعم از باز و بسته) را بدست آورد؟ ممنون

Hamedm
جمعه 18 فروردین 1385, 16:50 عصر
سلام

این طور که من تست کردم لیست فرمهای باز رو نشون می ده البته به قول آقا حامداین کد برای ورژن 2005 اگه ورژن 2003 رو هم دارین بدینبرای 2003 هیچ راهی برای پیدا کردن فرمهای کل پروژه وجود نداره (مطمئن باش).
برای فرمهای باز هم که گفتم، از کلکسیون HashTable استفاه کن.
ببین برای این کار(2003) پروژه رو باید با SubMain بالا بیاری. بعد به تعداد فرمهات FormLoad و Closed اونهارو AddHandler باید کنی.
بعد در رویدادی که AddHandler دادی (FormLoad)فرمهاتو به HashTable اضافه کن.
بعد در رویدادی که AddHandler دادی (Closed)فرمهاتو از HashTable حذف کن.
به همین راحتی :چشمک:.

در پناه حق موفق باشید و پرتوان