在一个普通窗体上弹出一个无边框的窗体,这个无边框的窗体的TopMost属性设为true,但是这个无边框的窗体弹出以后,底层窗体就不能用了,上面的控件比如按钮就无法使用了,请教一下是怎么回事?

解决方案 »

  1.   

    你弹的窗体都已经是TopMost了,下面的被挡住了,肯定用不了,如果没挡住就肯定可以用。
    还有你用的是showdialog?如果是的话,不管档没挡住都不能操作到底层的窗体
      

  2.   

    我用的就是show(),没有被挡住的也不能用,如果我把这个无边框窗体的父窗体设为底层窗体就可以用,但是这样会带来其他的问题,所以不能用设父窗体的方法
      

  3.   

    我刚刚试了一下,没有发现你说的问题?        private void Form1_Load(object sender, EventArgs e)
            {
                Form2 Form2 = new Form2();
                Form2.Show();
            }
            private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show("OK");
            }Form2的TopMost是True。
    Form2的FormBorderStyle是None。
      

  4.   

    改成如下写法,也没有问题,能够弹出ok。
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Form2 Form2 = new Form2();
                Form2.Show();
                Application.Run(new Form1());
            }
      

  5.   

    form1.SendToBack();
    form1.BringToFront();
      

  6.   

    showdialog() 改成show() 今天看到两个遇到这问题了。
      

  7.   

    感觉楼主不是想让主窗口在所有其他程序窗口的最上层,只是想让它成为本程序的最上层吧?
    明白楼主的意思,通过把主窗口的isMdiContainer属性设置为true,然后把该窗体设置为所有其他窗体的MdiParent,这样效果应该会好点。
    不知道楼主要的是不是这种效果。