在应用程序中创建第一个 IWin32Window 对象之前,必须调用 SetCompatibleTextRenderingDefault。

http://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.setcompatibletextrenderingdefault(VS.80).aspx

引经据典:MSDN 如是说,

Application.SetCompatibleTextRenderingDefault 方法

将某些控件上定义的 UseCompatibleTextRendering 属性设置为应用程序范围内的默认值。

 

参数

defaultValue

   用于新控件的默认值。如果为 true,则支持 UseCompatibleTextRendering 的新控件将 GDI+ 用于文本呈现;如果为 false,则新控件使用 GDI+。

异常类型 条件

InvalidOperationException

您只能在 Windows 窗体应用程序创建第一个窗口之前调用此方法。

某些 Windows 窗体控件可以使用 GDI 图形库或更新的 GDI+ 库来呈现其文本。由于 GDI+ 的性能和本地化问题而做出这样的更改。默认情况下,将支持 UseCompatibleTextRendering 属性的现有控件设置为 true 以获得向后兼容性,但 Visual Studio 等环境中的所有新控件都将该属性设置为 false。要切换新控件的默认文本呈现时,请使用 SetCompatibleTextRenderingDefault

如果在另一个应用程序中承载 Windows 窗体代码,例如 Internet Explorer,切勿调用该方法。仅在独立的 Windows 窗体应用程序中调用该方法。

 
去掉 //Application.SetCompatibleTextRenderingDefault(false); 则无异常。
 
代码如下:
 
Code
 
问题是解决了,但是根源似乎没有清澈,请高手指点迷津。
posted @ 2008-07-31 10:10  winzheng  阅读(15586)  评论(2编辑  收藏  举报