每个winform程序都有一个Program.cs文件,我们今天来熟悉下里面的代码。先看一个VS自动生成的例子。
using System; using System.Collections.Generic; using System.Windows.Forms; namespace FileSecond { static class Program { ///<summary> /// 应用程序的主入口点。 ///</summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } } }
引用那些就不说了。大家注意到在main函数之前有一个[STAThread]的特性,这个特性只是应用程序的COM线程模型是单线程单元。使用Windows窗体的任何应用程序的入口点上必须应用此特性;如果没有这个特性,则Windows组件可能无法工作。因为,如果不存在该特性,应用程序就会使用Windows窗体不支持的多线程单元模型。
System.Windows.Form.Application类提供了一系列静态方法和属性以管理窗体应用程序,例如启动和停止应用程序、处理Windows消息的方法和获取应用程序信息的属性。
Application.EnableVisualStyles ()
此方法为应用程序启用可视样式。如果控件和操作系统支持视觉样式,则控件将以视觉样式进行绘制。若要使 EnableVisualStyles生效,必须在应用程序中创建任何控件之前调用它;EnableVisualStyles 通常是 Main 函数的第一行。当调用 EnableVisualStyles时,无需单独的清单即可启用可视化样式。
Application.SetCompatibleTextRenderingDefault()
某些 Windows 窗体控件可以使用 GDI 图形库或更新的 GDI+ 库来呈现其文本。由于 GDI+ 的性能和本地化问题而做出这样的更改。默认情况下,将支持 UseCompatibleTextRendering 属性的现有控件设置为 true 以获得向后兼容性,但 Visual Studio 等环境中的所有新控件都将该属性设置为 false。要切换新控件的默认文本呈现时,请使用 SetCompatibleTextRenderingDefault。如果在另一个应用程序中承载 Windows 窗体代码,例如 Internet Explorer,切勿调用该方法。仅在独立的 Windows 窗体应用程序中调用该方法。
application.Run()
Main方法调用Application.Run时,创建了MainForm类的一个实例作为参数。这样就指定了当前应用程序的主窗体为MainForm窗体对象,即用MainForm窗体对象来管理当前应用程序消息循环。Application.Run方法同时指定窗体对象可见,并显示它。