将窗体窗口置于应用程序的顶部,而不是置于所有应用程序的顶部
本文关键字:应用程序 顶部 于所 窗口 窗体 | 更新日期: 2023-09-27 18:17:38
我有一个出现在计时器上的非模态单例表单。
如果窗体所属的应用程序是活动应用程序,但窗体不在顶部,我希望该窗体显示在该应用程序的所有其他窗口的顶部。这取决于用户是否点击它,将其推到应用程序的其他窗口后面。
如果表单所属的应用程序不是活动应用程序,那么我希望任务栏图标闪烁(这正在工作),并且我希望表单仅在该应用程序中显示在所有其他应用程序的顶部,因此当用户返回它时,它在那里供他们处理。
我尝试过使用form.BringToFront()
和form.TopMost = true; form.TopMost = false;
,但这两种解决方案都将表单置于所有应用程序的顶部。如果用户正在使用另一个程序,我不想惹恼他们。
是否有办法达到我想要的?
表单激活函数:
public static RemindersList CreateInstance(List<Reminder> rs)
{
if (_singleton == null)
{
_singleton = new RemindersList(rs);
_singleton.Activate();
_singleton.TopMost = true;
_singleton.TopMost = false;
// Flash in taskbar if not active window
FlashWindow.Flash(_singleton);
return _singleton;
}
else
{
_singleton.TopMost = true;
_singleton.TopMost = false;
// Flash in taskbar if not active window
FlashWindow.Flash(_singleton);
return null;
}
}
如何使用NotifyIcon?
http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon.aspx