Я создал приложение c # winform. Он открывает новое окно (без границ, как всплывающее окно, если это имеет значение), которое всегда должно оставаться поверх главной формы. Окно открывается потоком:
Task.Run(() => ...
в конструктор новой формы я попытался добавить:
this.TopMost = true;
Иногда окно выходит на задний план основной формы. И иногда я даже не могу открыть его из панели задач. Я нажимаю на него, и ничего не происходит.
- Других приложений с открытым окном нет
- Я попробовал это на Windows 7 и 10 (разные компьютеры)
- Я пытался вызвать следующий метод из form.load (если честно, я понятия не имею, что именно он делает):
public static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
public static UInt32 SWP_NOSIZE = 0x0001;
public static UInt32 SWP_NOMOVE = 0x0002;
public static UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
Ничего не помогло. У кого-нибудь есть идея?