2011-08-05 42 views
3

我有一個窗體(Form1,主窗體),我希望在開始時隱藏。從一開始就隱藏我的窗戶?

我想這樣做是因爲我有一個notifyIcon,通過點擊,爲表單設置可見的真或假,但我無法在一開始就爲表單設置可見性。

謝謝

+0

您是否試圖通過Page_Load或OnInit執行此操作? – diceler

+0

您是否嘗試過使用視覺工作室中的屬性菜單將'visable'屬性設置爲false。 –

+0

@Ziga,WinForms中沒有Page_Load :-) – driis

回答

3

我已經得到了正是這麼做的應用程序。要解決這個問題,請在Form的OnLoad中執行此操作,並且它不會直接顯示或在任務欄中顯示:

protected override void OnLoad(EventArgs e) 
{ 
    Visible = false; 
    ShowInTaskbar = false; 
    base.OnLoad(e); 
} 
+0

就是我想要的,很好很容易 – Jason94

5

您不必在啓動時顯示窗體。你可以簡單地使用不帶Form實例的Application.Run()重載。這將啓動Windows應用程序消息泵而不顯示任何UI。

在執行Application.Run()之前,可以設置要顯示的NotifyIcon。實際上,這意味着NotifyIcon將在啓動後可見,並且當用戶與圖標交互時,您可以打開表單。

這裏是一個最低工作的C#程序,它是:在啓動時顯示一個NotifyIcon的,並顯示一個表格,當用戶點擊它:

using System; 
using System.Drawing; 
using System.Windows.Forms; 

class Program 
{ 
    static void Main() 
    { 
     NotifyIcon icon = new NotifyIcon(); 
     icon.Icon = new Icon("C:\\Windows\\System32\\PerfCenterCpl.ico"); 
     icon.Visible = true; 
     icon.Click += (s,e) => new Form().Show(); 
     icon.DoubleClick += (s,e) => Application.Exit(); 
     Application.Run(); 
    } 
}