C# 如何设置';始终领先';在应用程序外部的窗口上进行标记/设置?

C# 如何设置';始终领先';在应用程序外部的窗口上进行标记/设置?,c#,winapi,C#,Winapi,是否有一种托管方式可以在我的应用程序外部的窗口上设置“始终在顶部”标志/设置,或者我是否需要p/调用本机函数 如果p/Invoke是唯一的方法,那么函数调用需要什么,从哪个dll开始?自从提出这个问题以来,我一直在研究这个问题,并且遇到了一个很好的例子,说明了如何通过p/invoking SetWindowPos在“user32.dll”中实现这一点。如果这样做有效的话,我会回来接受这个答案 [DllImport("user32.dll")] static extern bool

是否有一种托管方式可以在我的应用程序外部的窗口上设置“始终在顶部”标志/设置,或者我是否需要p/调用本机函数


如果p/Invoke是唯一的方法,那么函数调用需要什么,从哪个dll开始?

自从提出这个问题以来,我一直在研究这个问题,并且遇到了一个很好的例子,说明了如何通过p/invoking SetWindowPos在“user32.dll”中实现这一点。如果这样做有效的话,我会回来接受这个答案

    [DllImport("user32.dll")]
    static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);

    static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);

    const UInt32 SWP_NOSIZE = 0x0001;
    const UInt32 SWP_NOMOVE = 0x0002;
    const UInt32 TOPMOST_FLAGS = SWP_NOMOVE | SWP_NOSIZE;

    public static void MakeTopMost (IntPtr hWnd)
    {
        SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, TOPMOST_FLAGS);
    }
简单回答:

        TopMost = true;