Hotfix rollup 2937670 is available for the .NET Framework 3.5 on Windows 8 or Windows Server 2012

Applies to: .NET Framework 3.5 Service Pack 1Windows 8Windows Server 2012


This article describes hotfix rollup 2937670 for the Microsoft .NET Framework 3.5. This hotfix rollup fixes several issues in the .NET Framework 3.5. For more information about the issue that the hotfix rollup resolves, see the "More Information" section.

This hotfix rollup is available for the following operating systems:
  • Windows 8
  • Windows Server 2012

More Information

Hotfix Information

A supported hotfix is now available from Microsoft. However, it is intended to correct only the problem that this article describes. Apply it only to systems that are experiencing this specific problem.

To resolve this problem, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit the following Microsoft website:Note In special cases, charges that are ordinarily incurred for support calls may be canceled if a Microsoft Support Professional determines that a specific update will resolve your problem. The usual support costs will apply to additional support questions and issues that do not qualify for the specific update in question.


To apply this hotfix, you must have the .NET Framework 3.5 installed.

Restart requirement

You have to restart the computer after you apply this hotfix if any affected files are being used. We recommend that you exit all .NET Framework-based applications before you apply this hotfix.

Hotfix replacement information

This hotfix package does not replace a previously released hotfix package.

Issue that this hotfix rollup resolves

Issue 1

When you have a Windows Forms application that is running on a 64-bit operating system, the CheckedListBox or ComboBox control may not paint its items, and the control looks empty. This issue occurs because the control does not receive a WM_DRAWITEM message from its parent window. This issue occurs when the following conditions are true:
  • The owner-drawn control such as CheckedListBox has a negative window handle value.
  • The owner-drawn control's window handle is created in the constructor for the control’s parent form.
Negative window handles are created on the checked version of the 64-bit operating system, or when the handle is re-created many times on a retail build of the 64-bit operating system, such as when the application is running for a long time.

Usually, the control’s window is not created in the control's constructor. Therefore, the handle is also not created until after the parent form constructor is invoked. The second condition happens only when creation of the window handle is forced in the parent form constructor. One of the ways to force this creation is to change certain properties of the control, such as the BorderStyle property. When the child control’s handle is created before the parent's handle, the child control is temporarily parented to another window, and is re-parented later when the parent window is created. After the control is re-parented, the WM_DRAWITEM message is not routed correctly.

This hotfix fixes the message routing from the parent form to the owner-drawn control.