弹出子窗口后,父窗口就被子窗口盖住了。
我希望两个窗口不论哪个都可以在最前面。
请问如何解决?

解决方案 »

  1.   

    不要showDialog
    直接show就可以了。
      

  2.   

      windows api,一个窗体激活的时候给另外一个发消息using System;
    using System.Windows.Forms;
    using System.Runtime.InteropServices;
    namespace WindowsApplication43
    {
      public partial class Form1 : Form
      {
        Form frm =null;
        public Form1()
        {
          InitializeComponent();
          this.Activated += Form_Activated;
        }
        const int WM_NCACTIVATE = 0x86;
        const int WA_ACTIVE = 0x1;
        [DllImport("user32.dll", EntryPoint = "SendMessage")]
        public static extern int SendMessage(IntPtr hWnd, int wMsg, int wParam, int lParam);
        private void button1_Click(object sender, EventArgs e)
        {
          frm = new Form();
          frm.Text = "jinjazz";
          frm.Activated += Form_Activated;
          frm.Show();
          frm.Location = new System.Drawing.Point(this.Left + this.Width, this.Top);
          SendMessage(this.Handle, WM_NCACTIVATE, WA_ACTIVE, 0);
        }
        void Form_Activated(object sender, EventArgs e)
        {
          SendMessage(this.Handle, WM_NCACTIVATE, WA_ACTIVE, 0);
          if (frm != null)
            SendMessage(frm.Handle, WM_NCACTIVATE, WA_ACTIVE, 0);
        }
      }
    }
      

  3.   

    我用的show
    两个窗口都可以操作。但是界面显示的时候,父窗口就被子窗口盖住了
    只有把父窗口移出子窗口的范围才能看到父窗口。
      

  4.   

    父窗体在Show子窗体的时候 调整个属性:this.TopMost=ture;子窗体关闭的时候。 在把topMost改回false;
      

  5.   

    改窗体属性就是啦,窗体属性StartPosition
      

  6.   

    你子窗口有多大啊。
    大家不是都说了topmost,到底是谁不明白谁意思呢
      

  7.   

    就是,你在主窗体显示子窗体代码的时候,加上这句就可以了:this.TopMost=true
      

  8.   


    你把 子窗体.ShowDialog() 换成 子窗体.Show() 就可以了。这么简单的问题描述的这么复杂。。