2009-09-23 159 views
3

我在写C#Windows窗体应用程序。如何隐藏表单并保持其在Windows taskbar中处于活动状态?如何隐藏窗体窗体,但保留任务栏条目?

我已经试过Visible属性设置为false,并使用Hide()方法,但是他们隐藏的形式和任务栏条目。

我也试着通过在OnLoadonResize事件设置WindowStateFormWindowState.Minimized永久最小化应用程序。这很有效,但是当你左键单击任务栏中的图标时,在调整大小之前,会快速刷新应用程序(这很烦人)。

对不起,如果这个问题出现以前,但迄今为止我看到的每个问题invovles完全隐藏任务栏,或删除应用程序作为任务栏项目(将被替换为NotifyIcon)。

我该如何解决这个问题?

+0

感谢超级快速回复的家伙! I * *知道该建议dequadin和约翰给对被它们所描述的情景*右*的人,但我想我应该去的多一点深*为什么*我想我需要的行为。 我正在创建一个小应用程序,以便利用/扩展Windows 7中的新JumpLists。我希望任务栏条目处于活动状态,以便用户可以访问JumpList,但我不希望任何表单弹出侵入常规计算机的使用。 – Jama22 2009-09-23 18:46:49

回答

4

设置

FormBorderStyle = None 

&在Load事件:

private void Form1_Load(object sender, EventArgs e) 
{ 
    this.Size = new System.Drawing.Size(0, 0); 
} 
+0

就像一个魅力,谢谢你们真棒 – Jama22 2009-09-23 18:40:48

3

正如dequadin提到的,你可能使用的范例证明一个通知图标。任务栏是专门为最小化窗口设计的(在Win7上,应用程序启动)。所有其他建议(形成不透明度,移动屏幕外的窗口等)都会在Aero Peek上出现在Win7上。

如果你有一个应用程序,它主要是一个后台任务偶尔UI和需要对需求的用户交互,正确的方法是系统通知区域(也称为纸盒)。在.NET WinForms中,这将是NotifyIcon控件。

相关问题