Chinaunix首页 | 论坛 | 博客
  • 博客访问: 221440
  • 博文数量: 93
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 542
  • 用 户 组: 普通用户
  • 注册时间: 2014-12-09 16:59
文章分类

全部博文(93)

文章存档

2016年(27)

2015年(66)

我的朋友

分类: C#/.net

2016-01-22 13:09:04

在应用程序中创建第一个 IWin32Window 对象之前,必须调用 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); 则无异常。
 
代码如下:
 
 
 [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            //Application.SetCompatibleTextRenderingDefault(false);
            FormLogin login = new FormLogin();
            if(DialogResult.OK != login.ShowDialog()) return;
            Control instance;
            if (login.IsAuthorised == AuthoriseType.QualityChecker)
                instance = CheckingControl.Instance;
            else
                instance = ManagerControl.ManagerInstance;
            Application.Run(new FormMaster(instance));
        }
阅读(3181) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~