我创建了一个c#winform应用程序。它将打开一个新窗口(无边界,如果有此问题,则类似弹出窗口),该窗口应始终位于主窗体的顶部。该窗口由一个线程打开:
Task.Run(() => ...
在新表单的构造函数中,我尝试添加:
this.TopMost = true;
有时,该窗口位于主表单的背景中。有时我什至无法从任务栏打开它。我单击它,没有任何反应。
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);
没有任何帮助。有人有主意吗?