FIX: The ToolTip component may cause a memory leak when it is added to a child MDI form in Visual Studio .NET (817795)
The information in this article applies to:
- Microsoft .NET Framework 1.0
- Microsoft .NET Framework 1.1
- Microsoft Visual Studio .NET (2003), Enterprise Architect Edition
- Microsoft Visual Studio .NET (2003), Enterprise Developer Edition
- Microsoft Visual Studio .NET (2003), Academic Edition
- Microsoft Visual Studio .NET (2002), Enterprise Architect Edition
- Microsoft Visual Studio .NET (2002), Enterprise Developer Edition
- Microsoft Visual Studio .NET (2002), Professional Edition
- Microsoft Visual Studio .NET (2002), Academic Edition
SYMPTOMSWhen you work with ToolTip components in Microsoft Visual
Studio .NET with Windows Forms in multiple-document interface (MDI) mode, your
application may experience a memory leak every time that the ToolTip components
are used on the child MDI form. You may notice this problem as an increase in
the Graphics Device Interface (GDI) Object count that Microsoft Windows Task
Manager displays as the operation repeats. To view the GDI Object
count in Task Manager, follow these steps:
- Open the Task Manager window.
- On the View menu, click Select
Columns.
- In the Select Columns dialog box, click to select
GDI Objects.
CAUSEThis problem occurs when you have a ToolTip component
embedded on a child MDI form, and the child MDI form is destroyed. The ToolTip
component is not garbage collected after the MDI form is
destroyed.RESOLUTION
To resolve this problem, obtain the latest service pack for Microsoft .NET Framework 1.0 or Microsoft .NET Framework 1.1. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
STATUSMicrosoft
has confirmed that this is a problem in the Microsoft products that are listed
in the "Applies to" section.WORKAROUNDFor MDI forms that have ToolTip components, add the following code to the MDI form to destroy all
ToolTip components, when the form is destroyed: protected override void Dispose(bool disposing)
{
If (disposing)
{
If (components != null)
{
components.Dispose(); components = null;
}
If (toolTip1 != null)
{
// Code to add
toolTip1.Dispose();
// toolTip1 = null;
// }
// }
base.Dipose(disposing);
}
REFERENCES For additional information, click the
following article number to view the article in the Microsoft Knowledge Base: 824684
Description of the standard terminology that is used to describe Microsoft software updates
Modification Type: | Minor | Last Reviewed: | 9/27/2005 |
---|
Keywords: | kbHotfixServer kbQFE kbvs2002sp1sweep kbQFE kbfix kbBug KB817795 kbAudDeveloper kbAudITPRO |
---|
|