每個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方法同時指定窗體對象可見,並顯示它。