C# WINFORM  同一程序里的两个窗口,如何让窗口A永远在窗口B的上面.
还不影响别的窗口.不是在所有窗口最上面!

解决方案 »

  1.   

    如果允许两个窗口都可以获得焦点,但是要求Form2必须在Form1的前面,这种情况称为Form1拥有Form2Form2 f = new Form2();
    f.owner = this; //设定所有者
    f.Show();//不能够使用showdialog()方法这个属性在子窗口(form2)作为非模式对话框使用时比较有用,它能使子窗口在非激活状态下不被父窗口覆盖,记事本中的查找/替换对话框就是这样的
      

  2.   

    /// <summary> 
            /// 设置窗体显示深度模式
            /// </summary> 
            /// <param name="hwnd">窗口句柄</param>
            /// <param name="hWndInsertAfter">显示模式:-1最上层 1最底层</param>
            /// <param name="x">左边距</param>
            /// <param name="y">上边距</param>
            /// <param name="cx">宽度</param>
            /// <param name="cy">高度</param>
            /// <param name="wFlags">窗体模式:0窗体大小和位置变指定值 1大小不变 2位置不变 3大小位置不变</param>
            /// <returns>成功返回1,失败或错误返回0</returns> 
            public static int SetWindowFormPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags)
            {
                int state = 0;
                try
                {
                    SetWindowPos(hwnd, hWndInsertAfter, x, y, cx, cy, wFlags);
                    state = 1;
                }
                catch { state = 0; }
                return state;
            }
      

  3.   

    PreventIndulge.Systems.Windows.SetWindowFormPos((int)this.Handle, -1, 0, 0, 0, 0, 3);