Я пробовал несколько вещей, но ни одна из них не работает ...
У меня есть форма, которая должна появиться перед всеми окнами при нажатии NotifyIcon. Итак, вот что я попробовал:
private void notifyIcon1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.TopMost = true;
this.BringToFront();
this.Focus();
this.TopMost = false;
}
}
Затем я попытался использовать SetForegroundWindow:
[return: MarshalAs(UnmanagedType.Bool)]
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool SetForegroundWindow(IntPtr hwnd);
добавив
SetForegroundWindow(this.Handle);
в конце блока if.
Наконец, я увидел, что когда это не работает, если я щелкаю правой кнопкой мыши на NotifyIcon и открывается контекстное меню, я могу затем щелкнуть левой кнопкой мыши NotifyIcon, и он выводит его на передний план.
Я пытался добавить этот код в начале:
cmsNotifyIcon.Show();
cmsNotifyIcon.Close();
Чтобы он отображал и закрывал контекстное меню notifyIcon в качестве возможного решения для обходного пути, но это не помогло.
Есть идеи, как это сделать или обойти это?