winform открывает новое окно в фоновом режиме - PullRequest
0 голосов
/ 18 мая 2019

Я создал приложение 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);

Ничего не помогло. У кого-нибудь есть идея?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...