winform在后台打开新窗口

时间:2019-05-18 17:40:41

标签: c# winforms

我创建了一个c#winform应用程序。它将打开一个新窗口(无边界,如果有此问题,则类似弹出窗口),该窗口应始终位于主窗体的顶部。该窗口由一个线程打开:
Task.Run(() => ...
在新表单的构造函数中,我尝试添加:

this.TopMost = true;

有时,该窗口位于主表单的背景中。有时我什至无法从任务栏打开它。我单击它,没有任何反应。

  • 没有其他应用程序具有打开的窗口
  • 我在Windows 7和10(不同的PC)上尝试过
  • 我试图从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);

没有任何帮助。有人有主意吗?

0 个答案:

没有答案