Closed מתרחש כאשר האובייקט נסגר. Disposed מתרחש לאחר שהאובייקט נהרס. כלומר, אם אתה או ה-GC קראתם ל-Dispose שלו. לאחר Disposed, ריפרנס לאובייקט יהיה שווה ל-null.
ארוע closed המשתמש מחליט עליו - לוחץ על כפתור סגירה בדר"כ disposed - המחשב מחליט מתי זה יקרה - זה יכול להיות זמן רב (במונחים של מחשב) אחרי שארוע closed קרה, ואין לך דרך טובה לשלוט על התזמון של ארוע זה.
ה-GC אף פעם לא קורא ל-Dispose, זה התפקיד של המתכנת שמשתמש בקלאס (לעומת זאת ה-GC קורא ל-destructor או ל-Finalize()). כמו"כ Dispose לא משנה את הרפרנס של האובייקט ל-null... למען האמת אין שום תהליך ב-net. שגורם לרפרנס שכבר קיים להפוך ל-null בגלל פעולת GC.
יצרתי טופס ובו printDocument ובאירוע של לחיצת כפתור אני יוצרת טופס אחר ובו PrintPreviewControl - Dim frm As New PrintPreviewControlForm frm.PrintPreviewControl1.Document = PrintDocument1 הבעיה היא שה-PrintPreviewControl ריק. מה הסיבה לכך? תודה
התכוונתי ל printPreviewDialog ואת לprintPreviewControl. אני לא סגור לחלוטין על הקונטרול - סליחה, אך נראה לי שהוא עובד אותו דבר, מכוון שהדיאלוג זה הרחבה של הקונטרול. (למה שלא תשתמשי בדיאלוג - הוא כבר מכיל את כל מה שצריך ודורש פחות תיכנות)