我们的应用程序具有以下要求:如果应用程序正在运行并且我再次启动应用程序,则必须激活第一个实例才能打开一个新实例。Windows.Forms:激活已经在正确运行的应用程序FormWindowState
为了实现这一点,在主例程中我检查是否已经有一个正在运行的实例。如果是,我使用以下命令将第一个实例带到前面:
Microsoft.VisualBasic.Interaction.AppActivate(appIdentifier);
到目前为止所有工作都按预期工作。 这个解决方案的唯一问题是,如果第一个实例被最小化,通过再次启动应用程序,第一个实例将是活动的,但不可见(仍然最小化)
这是我的问题。如何通过激活实例回到最后一个WindowState。 我的解决办法,认购Form.Activated事件,在事件处理方法执行以下代码:
if (MyForm.WindowState == FormWindowState.Minimized)
{
MyForm.WindowState = FormWindowState.Normal;
}
但是这种解决方案我有问题,如果应用程序在最大化状态最小化前激活后,应用程序不会回到它。
有没有人知道我可以如何解决这个问题?有没有机会获得最后一个windowState?
在此先感谢您的帮助!
http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/a5bcfc8a-bf69-4bbc-923d-f30f9ecf5f64 – 2012-03-22 23:55:54