Èç¹û²»ÓÃMDIÀ´ÊµÏÖÒ»¸öÖ÷´°Ìå´ò¿ª¶à¸ö×Ó´°Ìåʱ£¬ ´ÓÒ»¸ö´°Ì壨Ö÷´°Ì壩´ò¿ªÒ»¸ö£¨only one) ÁíÍâÒ»¸öµÄ´°Ì壨×Ó´°Ì壩µÄʵÏÖ ¸¸´°Ì壺MainForm public partial class MainForm:Form { ............ private void menuItem1_Load(object sender,EventArgs e) { ChildForm child1=ChildForm.Create(); child1.show(); child1.Focus(); } //...... } ×Ó´°Ì壺ChildForm public partial class ChildForm:Form { ..... static ChildForm child; Public static ChildForm Create() { if(child==null) child=new ChildForm(); return Child; } ...... } F5ÔËÐк󣬵ÄȷʵÏÖÁËÉÏÃæÌáµ½µÄ¹¦ÄÜ¡£È»¶ø£¬°Ñ×Ó´°Ì幨±Õºó£¬ÏëÔٴδò¿ª¸Ã×Ó´°Ìåʱ£¬µ¥»÷²Ëµ¥Ï»á³öÏÖÒì³££ºObjectDisposedException was unhandled. ÕâÊÇÎªÊ²Ã´ÄØ£¿? ÕâÀïÉæ¼°µ½C#À¬»ø»ØÊÕµÄÎÊÌ⣺ À¬»ø»ØÊÕÊÇ.NETÔËÐпâµÄÒ»²¿·Ö¡£À¬»ø»ØÊÕÆ÷¹ÜÀíËùÓеÄÍйܶÔÏó£¬ËùÓÐÐèÒªÍйÜÊý¾ÝµÄ.NETÓïÑÔ£¨°üÀ¨ C#£©¶¼ÊÜÔËÐпâµÄÀ¬»ø»ØÊÕÆ÷µÄÖÆÔ¼¡£À¬»ø»ØÊÕÆ÷¿ÉÒÔÈ·¶¨ÔËÐÐÀ¬»ø»ØÊÕµÄ×î¼Ñʱ¼ä£¬×Ô¶¯½øÐÐÀ¬»ø»ØÊÕ¡£È»¶øÀ¬»ø»ØÊÕµÄÒ»¸ö²úÎïÊÇ£ºC# ¶ÔÏóûÓÐÈ·¶¨ÐÔ»Ù»µ¡£ËùÒÔ»á³öÏÖ¶ÔÏóchildÒѱ»Ïú»Ù£¬µ«ÓÖ²»Îªnull,·ÃÎÊʱ²úÉúObjectDisposedExceptionÒì³£¡£ Ôõô°ì£¿? ·½·¨£ºÓ¦¸Ã³¹µ×»ØÊÕChildËùÕ¼µÄ×ÊÔ´¡£ ;¾¶Óжþ£º ·½·¨Ò»£º ÐÞ¸Ä×Ó´°ÌåµÄ¹¹Ô캯Êý public ChildForm() { //......... this.Disposed+=new System.EventHandler(Form_Disposed) } È»ºóʼþForm_DisposedµÄ´¦Àíº¯Êý private void Form_Disposed(object sender,EventArgs e) { Child=null; } ·½·¨¶þ£º ÖØÐ´ChildFormµÄOnClosed·½·¨ Protected void OnClosed(EventArgs e) { base.OnClosed(e); child=null;
} µ±È»¿ÉÄÜÓÐÆäËûµÄ·½·¨£¬¸÷λ¿´¿ÍÓÐÐËȤµÄ»°²¹³äһϡ£ÁíÍâÓÐÐðÊö²»µ±µÄµØ·½£¬Çë¶à¶àÖ¸½Ì,ÔÚÏ¸м¤²»¾¡¡£
|