Application.EnableVisualStyles();

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
  Application.Run(new login());

1. Application.EnableVisualStyles() 的作用是激活应用程序的显示风格,而显示风格是构成操作系统主题的各种元素,如色彩、字体等。如果控件和OS支持,那么控件的绘制就会根据显示风格来实现。实际上该方法的调用必须早于任何一个控件的创建。通常它位于Main函数的第一行,在集成开发环境下会自动被添加。见:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.enablevisualstyles.aspx

2. SetCompatibleTextRenderingDefault()
        某些窗体控件在给它们的文本着色时可以使用 TextRenderer类也可以使用 Graphics类。 TextRenderer类是基于 GDI图形库的,而 Graphics类则基于GDI+库。这两种类的并存始于.NET Framework 2.0,部分出于性能原因,部分是由于GDI+的本地化问题。若控件支持UseCompatibleTextRenderingproperty属性,则该方法将此属性设置为默认值。
        UseCompatibleTextRendering属性用于兼容使用TextRenderer类的窗体控件和使用 Graphics 类的.NET Framework 1.0和.NET Framework 1.1下的应用程序。如果你到程序不是从1.0或者1.1版本升级来的,那么建议你把该属性设置为false。

除了窗体应用程序,不要调用该方法。

至于为什么出现基于GDI 的TextRenderer类,MSDN上有,我也不想再翻译了。主要是基于性能,美观等考虑,以及多语言字体的兼容问题。

3. Application.Run(new login());
    我估计你的login应该是个窗体类,不是ApplicationContext类。对于窗体来说,Run方法在当前线程中启动一个标准的应用程序消息循环,另外它还将你的login窗体显示出来

时间: 2024-12-09 18:13:16

Application.EnableVisualStyles();的相关文章

Easy steps to create a System Tray Application with C# z

Hiding the C# application to the system tray is quiet straight forward. With a few line of codes in C# and you can accomplish this. First you will need to create the context menu for the system tray, then after that you need to create the notify icon

Application 类

Application 类具有用于启动和停止应用程序和线程以及处理 Windows 消息的方法,如下所示: Run 在当前线程上启动应用程序消息循环,并可以选择使某窗体可见. Exit 或 ExitThread 停止消息循环. DoEvents 在您的程序处于某个循环中时处理消息. AddMessageFilter 向应用程序消息泵添加消息筛选器来监视 Windows 消息. IMessageFilter 使您可以阻止引发某事件或在调用某事件处理程序前执行特殊操作. 该类具有用于获取或设置当前线

Winform Application系统更新

无废话,直接贴代码说明系统更新, 首先,让我们来看看系统的程序入口该怎样写 [STAThread] static void Main() { Control.CheckForIllegalCrossThreadCalls = false; Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); bool create=false; using (Mutex mu = new M

解决EnableVisualStyles Bug

一位朋友碰到了一个WinForm的问题,在网上搜了一通,没找到能解决问题的方案, 正好我以前以碰到过,在这里把解决方案呈上,以便有遇到此问题的朋友能有帮助. 问题是这样的,当启用了虚拟样式后,设置好的TeeView 的图标就不见了,代码如下: Application.EnableVisualStyles(); 在Debug模式生成的程序没问题,但用Release模式生成则不见了. 在以下地址有一个方法,但不一定能解决问题, http://www.codeproject.com/KB/bugs/E

处理Application.ThreadException异常, 拦截GUI主线程的异常

.Net Winform有着自己的未处理异常机制. Winform内部的代码会在Applicatin.Run方法里面为消息循环创建一个大的try...catch. 这样, 任何在GUI主线程里面的异常都会被这个try...catch所捕捉到, 这个默认的未处理异常handler会提取异常的所有信息然后显示在一个错误对话框里面,接着程序就中止了.这样我的try...catch就没有作用了,即下面的捕捉异常的代码是无效的. static void Main(){    try    {       

C# WinForm 判断程序是否已经在运行,且只允许运行一个实例

static class Program {   /// <summary>   /// 应用程序的主入口点.   /// </summary>   [STAThread]   static void Main()   {     Application.EnableVisualStyles();     Application.SetCompatibleTextRenderingDefault(false);     //1.这里判定是否已经有实例在运行     //只运行一个实

WinForm程序,实现只启动一个实例

前言:在我们做的软件中,当点击图标运行时,正常的需求是只需要启动一个软件的实例,这是非常重要的一点,不然就显得我们的软件非常的山寨,笔者在工作中经常遇到同事没有注意这一点,看是不重要,实则非常的重要,这里在C#中进行实现. 注:代码需写在Program.cs中,具体代码如下: 1 static class Program 2 { 3 4 /// <summary> 5 /// 该函数设置由不同线程产生的窗口的显示状态. 6 /// </summary> 7 /// <para

c#进程之间对象传递方法

1. 起源 KV项目下载底层重构升级决定采用独立进程进行Media下载处理,以能做到模块复用之目的,因此涉及到了独立进程间的数据传递问题. 目前进程间数据传递,多用WM_COPYDATA.共享dll.内存映射.Remoting等方式.相对来说,WM_COPYDATA方式更为简便,网上更到处是其使用方法. 而且Marshal这个静态类,其内置多种方法,可以很方便实现字符串.结构体等数据在不同进程间传递. 那么,对象呢?如何传递? 2.序列化 想到了,Newtonsoft.Json.dll这个神器.

winform 记录全局异常捕获

/// <summary> /// 应用程序的主入口点. /// </summary> public static ApplicationContext context; [STAThread] private static void Main() { try { //处理未捕获的异常 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); //处理UI线程异常 Applicatio