我想让打开的子窗体永远在父窗体之上,并还能操作父窗体,我想到了以下几个办法
在父窗体上打开子窗体时用 show(),但遗憾的是它不能永远在父窗体之上,如果将子窗体设为TopMost顶端显示,却不是我想要的;
用ShowDialog()确同样有遗憾,这样一来就不能操作父窗体了请高手赐教,我的父窗体不是MDI窗体。谢谢了

解决方案 »

  1.   

                Form f = new Form();
                f.Owner = this;
                f.Show();
      

  2.   

    第一种方法:让子窗体在主窗体之上而且还可以操作主窗体,但是这样的话子窗体是可以移出主窗体那个大的对话框的
    用非模式化对话框
    Form1 f=new form1()
    F.Owner=this;
    F.show();
    而你的那种方法是模式化的对话框,即你必须关闭子窗体才能操作主窗体
    Form1 f=new form1();
    f.showdialog(this);
    第二种方法也就是将主窗体变成MDI窗体,这样的话子窗体在主窗体之上而且还可以操作主窗体,并且子窗体不能出主窗体的边界
    1.在主窗体中将主窗体的IsMdiContainer属性改成True
    2.在主窗体中写要调用的子窗体,如调用f子窗体
    f f1=new f(this);
    f1.Show()
    3.在子窗体f1中在其构造函数中加个参数即如:文件名.主窗体名  自定义变量名
    在其代码中加上this.MdiParent=自定义变量名