我正在編寫一個應用程序,其中主窗體必須隱藏起來,但它在啓動時顯示對話框。窗體加載不會觸發已隱藏的窗體?
我的主窗體在由構造函數調用的initialize()方法中有以下行。
this.Load += new System.EventHandler(this.MainForm_Load);
我已經驗證它上面的代碼打但MainForm_Load()方法不會被調用。
難道這是因爲我隱藏了表單嗎?
我執行Program.cs中的主要以下行:
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
而且已經覆蓋在表格下面的方法:
protected override void SetVisibleCore(bool value)
{
_logger.Debug("Hiding the main window");
base.SetVisibleCore(allowShowDisplay ? value : allowShowDisplay);
}
凡allowShowDisplay設置爲false;
我在this queston的答案中找到了此解決方案的至少一部分,並已將其用於另一個項目。該項目雖然沒有使用表單加載事件。我正在做的那個。
UPDATE 這就是Main方法的樣子。我正試圖將依賴注入到所有元素中。我已更改名稱以刪除客戶名稱。
[STAThread] 靜態無效的主要(){
ServiceHost incomingPipeHost = new ServiceHost(typeof(ScreenPopService));
incomingPipeHost.Open();
XmlConfigurator.Configure();
_logger.Debug("Starting Application");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
_logger.Debug("Creating subformView");
ISubformView subformView = new SubformView();
_logger.Debug("Creating MainForm mainForm");
MainForm mainForm = new MainForm();
_logger.Debug("Creating MonitorController");
IMonitorController MonitorController = new MonitorController();
_logger.Debug("Adding View to MonitorController");
MonitorController.View = mainForm;
_logger.Debug("Adding subFormView to mainForm");
mainForm.SubFormView = subFormView;
_logger.Debug("Adding MonitorController to mainForm");
mainForm.MonitorController = MonitorController;
_logger.Debug("Loading Properties");
IProperties properties = PropertiesManager.LoadProperties();
_logger.DebugFormat("Loaded Properties [{0}]", properties);
_logger.Debug("Setting properties on mainForm");
mainForm.Properties = properties;
_logger.Debug("Setting properties on MonitorController");
MonitorController.Properties = properties;
_logger.Debug("Settting ScreenPop Consumer on MonitorCotroller");
MonitorController.screenPopConsumer = ScreenPopCallBackManager.Instance;
_logger.Debug("Debug Running Application");
Application.Run(mainForm);
}
你是否正在創建一個新形式的實例..?如果是這樣,顯示適用於問題/問題的代碼。 – MethodMan 2012-08-03 14:50:30
我正在創建一個窗體的實例,向其中添加一堆參數,然後使用窗體作爲參數調用Application.Run。該表單還有一個與之關聯的通知圖標,正在顯示。 – 2012-08-03 14:53:57
我發佈的示例我有工作,但不知道它是否是你正在尋找的..注意我是如何創建一個形式的實例..你可以做同樣的重寫/設置值的方式以及.. – MethodMan 2012-08-03 14:59:20