隐藏Windows移动应用而不是关闭

问题描述:

我有一个Windows移动应用,需要在后台继续运行以执行一些任务。隐藏Windows移动应用而不是关闭

要隐藏的应用程序,而不是关闭它是很容易的:

protected override void OnClosing(CancelEventArgs e) 
{ 
    e.Cancel = true; 
    this.Hide(); 
    base.OnClosing(e); 
} 

的问题:怎样才能再次显示应用程序,当用户在菜单中启动它?
Windows Mobile确实知道该应用程序仍在运行,因此它不会启动第二个副本。相反,它什么都不做。

如果应用程序再次启动,应用程序是否有任何通知,所以应用程序可以显示它的GUI?

你应该使用这样的:

protected override void OnClosing(CancelEventArgs e) { 
    if (false == this.CanClose) { // you should check, if form can be closed - in some cases you want the close application, right ;)? 
    e.Cancel = true; // for event listeners know, the close is canceled 
    } 
    base.OnClosing(e); 
    if (false == this.CanClose) { 
    e.Cancel = true; // if some event listener change the "Cancel" property 
    this.Minimize(); 
    } 
} 

“最小化” 的方法应该看起来像在这个博客帖子(http://christian-helle.blogspot.com/2007/06/programmatically-minimize-application.html)。

+0

是的,这是有效的 - 唯一的缺陷:程序在任务列表中可见。当用户想要关闭它时,我宁愿隐藏它。 – Sam 2010-01-29 11:25:17

+0

我不认为,应用程序应该隐藏任务列表。 Mabe为你的目标提供了更好的方式,将应用程序拆分成服务(它将在后台运行,而不会导致用户如何关闭它)以及带GUI的应用程序来控制可以与服务协调的设置(等等)并可以关闭。 – TcKs 2010-01-29 12:05:38

+3

我想让它在此时不出现在“正在运行的程序”列表中,只需在隐藏时将表单标题设置为空字符串即可。当它重新出现时,再次设置标题。 – ctacke 2010-01-29 16:25:57