日期:2014-05-18  浏览次数:20852 次

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

请高手赐教,我的父窗体不是MDI窗体。

谢谢了

------解决方案--------------------
C# code
            Form f = new Form();
            f.Owner = this;
            f.Show();

------解决方案--------------------
第一种方法:让子窗体在主窗体之上而且还可以操作主窗体,但是这样的话子窗体是可以移出主窗体那个大的对话框的
用非模式化对话框
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=自定义变量名