Windows窗体总是在顶部不工作c#

时间:2014-01-21 14:41:07

标签: c# windows forms topmost

我搜索了论坛但仍然没有答案似乎是正确的。

当用户在浏览器中操作时,我需要显示来自系统托盘应用的消息通知。

我希望此通知显示在所有内容之上,但即使我将其设置为TopMost或TopLevel或BringToFront或Focus,我也无法实现我想要的效果。

我正在使用一个简单的Windows窗体,我使用系统托盘应用程序中的ShowDialog显示它。

请帮帮我:)。

PS:如果我从systray应用程序启动通知表单而没有其他应用程序打开或聚焦它工作正常,我只是无法在活动的浏览器窗口前显示它

2 个答案:

答案 0 :(得分:0)

NameOfYourWindow myTopForm = new NameOfYourWindow();

myTopForm.Owner = App.Current.MainWindow;
myTopForm.ShowInTaskbar = false;
myTopForm.TopMost = true;
myTopForm.ShowDialog();

答案 1 :(得分:0)

#region SetForegroundWindow
    [DllImport("kernel32.dll", ExactSpelling = true)]
    public static extern IntPtr GetConsoleWindow();
    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool SetForegroundWindow(IntPtr hWnd);
    #endregion
     static void Main(string[] args)
    {
        while (true)
        {

            SetForegroundWindow(GetConsoleWindow());
        }
    }
相关问题