2012-02-09 60 views
0

可能重複:
How to make the startup form initially invisible or hidden如何在啓動時不顯示窗口?

我的應用程序有一個系統托盤,我不希望出現的窗口上推出。

我該如何做到這一點?


這是一個默認的Windows窗體應用程序。

我拖過的NotifyIcon和contexualMenuStrip

當窗體關閉時,應用程序退出(不想,要麼)。但是,當應用程序啓動時,Windows窗體也可見。那麼,如何在啓動時不啓動表單(並且在關閉窗口時不退出)呢?

+0

請顯示一些源代碼...你有什麼試過?什麼不工作? – Yahia 2012-02-09 17:10:14

+0

難道你不能只將啓動形式的'Visible'屬性設置爲'false'嗎?或者將默認窗口位置設置爲隱藏?我記得做了這樣的事情,但有一段時間沒有碰到WinForms。 – Yuck 2012-02-09 17:15:37

+0

表單沒有Visible屬性。 – 2012-02-09 17:31:42

回答

1
+0

這種方法的一個副作用是沒有初始化代碼被觸發。例如:如果我有一個計時器,我開始在MainForm_Load它永遠不會啓用,並從不觸發Tick事件。 Ieven試過System.Timers.Timer只是爲了確保它不僅僅是以這種方式運行但結果相同的Windows.Forms.Timer。 – Digvijay 2012-02-10 11:57:29

0

答案不在於隱藏你的主表格,但是首先不顯示/加載

一種方法是創建一個自定義ApplicationContext

public static class Program 
{ 
    public static void Main(string[] arguments) 
    { 
     var context = new NotifyIconApplicationContext(); 
     context.Icon.Icon = new Icon(PATH_TO_ICON_FILE_HERE); 
     context.Icon.Visible = true;  
     Application.Run(context); 
    } 
} 

class NotifyIconApplicationContext : ApplicationContext 
{ 
    public NotifyIconApplicationContext() 
    { 
     Icon = new NotifyIcon(); 
    } 
    public NotifyIcon Icon { get; set; } 
} 

然後,您可以將之前的Application.Run(context)線允許的事情就像打開你的主要形式,呈現出菜單等處理您的通知圖標, ..