Error creating window handle

ציפי81

New member
Error creating window handle

יש לי אפליקצית MDI. לעיתים, כאשר טופס מסויים המכיל DataGridView פתוח ואני מנסה לפתוח טופס אחר באמצעות ה-Menu, אני מקבלת שגיאת System.OutOfMemoryException עם ההודעה Error creating window handle. גיגול נמרץ הוכיח לי כי אחרים נתקלו בבעיה, וכי התשובה היתה שיש הגבלה על מספר ה-Handles שמערכת ההפעלה יכולה לייצר (רוב המקומות דיברו על 1000 Handles). העניין הוא שלא מדובר ב-Grid עם מיליוני שורות - זה קורה לי אפילו עם כמה עשרות שורות. הטופס מכיל בנוסף Menu עם 15 פקדים ועוד Menu עם 8 פקדים. האם יש דרך למנוע את הופעת השגיאה? באחד המקרים בחרתי לעקוף את הבעיה על ידי סגירת הטופס המכיל את ה-Grid לפני פתיחה של טופס אחר. אולם יש לי סיטואציה בה הדבר אינו אפשרי מבחינת הדרישות. האם יש דרך לגלות כמה handles כבר קיימים וכן לא להתקל בהגבלה הנ"ל?
 

ציפי81

New member
ראיתי הצעה

להוסיף לקוד של הטופס
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) MyBase.WndProc(m) End Sub​
או ב-C#
protected override void WndProc(ref Message m) { base.WndProc(ref m); } בתחילה זה אכן הועיל, אך אחר כך התברר לי שהשגיאה שוב מופיעה. למישהו יש רעיון לפתרון?​
 

ציפי81

New member
../images/Emo208.gif

למרות כל ניסיונותי העניין לא מסתדר. באופן דינמי אני מקבלת את הודעת השגיאה - פעם כן ופעם לא - לאותה סיטואציה. יש למישהו רעיון?
 
למעלה