Share via

Application.SetCompatibleTextRenderingDefault(Boolean) Method


Sets the application-wide default for the UseCompatibleTextRendering property defined on certain controls.

 static void SetCompatibleTextRenderingDefault(bool defaultValue);
public static void SetCompatibleTextRenderingDefault (bool defaultValue);
static member SetCompatibleTextRenderingDefault : bool -> unit
Public Shared Sub SetCompatibleTextRenderingDefault (defaultValue As Boolean)



The default value to use for new controls. If true, new controls that support UseCompatibleTextRendering use the GDI+ based Graphics class for text rendering; if false, new controls use the GDI based TextRenderer class.


You can only call this method before the first window is created by your Windows Forms application.



To set the default value for UseCompatibleTextRendering in Visual Basic 2005 or later, see WindowsFormsApplicationBase.UseCompatibleTextRendering.

For C# apps, Visual Studio automatically adds a call to SetCompatibleTextRenderingDefault in the Program.cs file. To change the text rendering default, modify the generated code.

static class Program  
    /// <summary>  
    /// The main entry point for the application.  
    /// </summary>  
    static void Main()  
        Application.Run(new Form1());  


Certain Windows Forms controls can render their text using either the TextRenderer class, which is based on the GDI graphics library, or the Graphics class, which is based on the GDI+ graphics library. This change was made in .NET Framework 2.0 because of performance and localization issues with GDI+. Use SetCompatibleTextRenderingDefault to set the default value of the UseCompatibleTextRendering property for controls that support that property.

The UseCompatibleTextRendering property is intended to provide visual compatibility between Windows Forms controls that render text using the TextRenderer class and apps that perform custom text rendering using the Graphics class. In most cases, if your application is not being upgraded from .NET Framework 1.0 or .NET Framework 1.1, it is recommended that you leave UseCompatibleTextRendering set to the default value of false.

The GDI-based TextRenderer class was introduced in .NET Framework 2.0 to improve performance, make text look better, and improve support for international fonts. In earlier versions of .NET Framework, the GDI+ based Graphics class was used to perform all text rendering. GDI calculates character spacing and word wrapping differently from GDI+. In a Windows Forms application that uses the Graphics class to render text, this could cause the text for controls that use TextRenderer to appear different from the other text in the application. To resolve this incompatibility, you can set the UseCompatibleTextRendering property to true. To set UseCompatibleTextRendering to true for all supported controls in the application, call the SetCompatibleTextRenderingDefault method with an argument of true.

You should never call this method if your Windows Forms code is hosted in another application, such as Internet Explorer. Only call this method in stand-alone Windows Forms applications.

Applies to

See also