PDA

View Full Version : مبتدی: مشكل با dispose



e.Rezaei
سه شنبه 02 آذر 1389, 10:07 صبح
سلام .
وقتي مي خوام يه فرمو براي بار دوم باز كنم ، با متد Show يا ShowDialog
اين خطا رو مي گيره .
Cannot access a disposed object.
Object name: 'frmBolbring'
نمي تونه به متد disposed دسترسي پيدا كنه نمي دونم ، چرا ؟
خيلي ممنون مي شم جواب بديد .
.

M.YasPro
سه شنبه 02 آذر 1389, 10:15 صبح
خوب شما نمونه ای که از frmBolbring ساخته بودید رو قبلا Close کردید و از بین بردید

e.Rezaei
شنبه 06 آذر 1389, 10:10 صبح
مي شه لطفاً بيشتر توضيح بديد ؟

dr_jacky_2005
شنبه 06 آذر 1389, 11:10 صبح
مي شه لطفاً بيشتر توضيح بديد ؟


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

M.YasPro
شنبه 06 آذر 1389, 11:14 صبح
ببینید همچین کدی رو در نظر بگیرید:


Form2 frm = new Form2();
frm.Dispose();
frm.Show();

یا


Form2 frm = new Form2();
frm.Close();
frm.Show();


توی کدهای بالا از یک متد شیی که از "بین رفته" استفاده شده .
متدهای close و Dispose منابع سیستمی اختصاص داده شده برای آبجکت ما رو آزاد ،و در نهایت آبجکت ما رو نابود می کنند .
شما از یک شی نابود شده درخواستی کردید .
موفق باشید .