创建一个Application的时候发现,我们的From窗体是通过Program文件调用的,但是在Program文件中Main函数内的方法都是什么意思呢?
    首先在Main函数下有三行代码
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
    下面我们来逐句讲解:
    Application.EnableVisualStyles方法为应用程序启用可视样式。如果控件和操作系统支持视觉样式,则控件将以视觉样式进行绘制。若要使EnableVisualStyles生效,必须在应用程序中创建任何控件之前调用它;EnableVisualStyles通常是Main函数的第一行。当调用EnableVisualStyles时,无需单独的清单即可启用可视化样式。
    Application.SetCompatibleTextRenderingDefault函数MSDN解释为:
某些Windows窗体控件可以使用TextRenderer类(基于GDI图形库)或Graphics类(基于GDI+图形库)来呈现其文本。考虑到与GDI+相关的性能和本地化问题,此更改在.NET Framework2.0中进行。使用SetCompatibleTextRenderingDefault,可为支持UseCompatibleTextRendering属性的控件设置该属性的默认值。
    UseCompatibleTextRendering属性旨在为Windows窗体控件(使用TextRenderer类来呈现文本)与.NET Framework1.0和.NET Framework1.1应用程序(使用Graphics类来执行自定义文本呈现)之间提供可视化兼容性。在大多数情况下,如果您的应用程序不是从.NET Framework1.0或.NET Framework1.1升级的,建议您将UseCompatibleTextRendering设置保留为false的默认值。基于GDI的TextRenderer类是在.NET Framework 2.0中引入的,用于提高性能、改善文本外观以及提高对国际字体的支持。 在早期版本的.NET Framework中,基于Graphics类的GDI+用于执行所有文本呈现。GDI采用与GDI+不同的方式计算字符间距和自动换行。在使用Graphics类来呈现文本的Windows窗体应用程序中,这可能导致使用TextRenderer显示的控件文本外观与应用程序中的其他文本外观不同。若要解决此不兼容性,可将UseCompatibleTextRendering属性设置为true。若要将应用程序中所有受支持控件的UseCompatibleTextRendering设置为true,请使用true参数来调用SetCompatibleTextRenderingDefault方法。 
    如果在另一个应用程序中承载Windows窗体代码,例如Internet Explorer,切勿调用该方法。仅在独立的Windows窗体应用程序中调用该方法。”
    下面重点,如何解决这个问题呢?如果是老代码(比如VB)或者原有调用线程没有设置Application.SetCompatibleTextRenderingDefault(false)或者直接设置Application.SetCompatibleTextRenderingDefault(true)的话,winfrom有些控件在显示的时候会出现问题(比如Label)。
    解决的方式是:直接设置控件的呈现不兼容老版本。
代码为:
Label label = new Label();
label.UseCompatibleTextRendering = false;
    如此设置控件,可以在全局是兼容老版本的情况下让所要的控件不兼容老版本的呈现,这样就会避免此控件在呈现文字时出现错误。