winform C#根據配置檔案啟動不同的窗體
阿新 • • 發佈:2018-11-30
Visual Studio中,新建winform C#專案後,會預設生成一個主窗體檔案,一般叫 Form1, 也可以自己改名,反正啟動程式就會首先啟動這個窗體。
這是一種固定的模式,那麼如果專案中有多個不同的窗體,不同情況下分別啟動不同的窗體,如何實現呢?
第一反應是把主窗體隱藏(Hide),然後在主窗體中加分支啟動不同的窗體。
實測不理想,主窗體啟動時無論在哪裡呼叫Hide()都不起作用,無法隱藏。
另外還有設定this.Opacity = 0 這個辦法,但是也不理想,螢幕上是看不到了,但是在工作列中還在。
重新思考了片刻,找到了方法:
直接修改Program.cs,把原來啟動主窗體的程式碼取消,代之以自定義的分支判斷:
static class Program { /// <summary> /// 應用程式的主入口點。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //Application.Run(new Form1()); //根據配置檔案判斷載入哪個型別 Config config = FnConfig.getConfig(); if (config.type.Equals(Config.TYPE_OFFICE)) { Application.Run(new FormOffice()); } else if (config.type.Equals(Config.TYPE_TOILET)) { Application.Run(new FormToilet()); } } }
這樣相當於把原來的主窗體廢棄了。
問題解決。