在winform中 父窗体是一个MDI的页面,是主程序窗体, 现有a窗体和b窗体 a不是子窗体,我现在需要在a窗体中设置b窗体在MDI窗体中显示该怎么写代码,winform新手求解
这个跟我的那个要求不同 a不是父窗体
@千重:
foreach (Form f in this.MdiChildren) 26 { 27 if (f.GetType() == type) 28 { 29 f.Activate(); 30 return; 31 } 32 } 33 34 Form frm = type.Assembly.CreateInstance(type.ToString()) as Form; 35 frm.MdiParent = this; 36 frm.WindowState = FormWindowState.Maximized; 37 frm.Show();
你把代码的意思看清楚了就知道了,窗体不是你要的,可以换成你要的啊,就是你要知道这个实现的思路。
@荒野的呼唤: 一直都是 frm.MdiParent = this;这句的this没取到引起的
Application.Run(new Form1());
1、首先你先建立一个窗体,窗体名称自定,然后把该窗体的属性“IsMdiContainer”为ture,这是一个重要的属性,窗体设置了这个属性就表示这个窗体为多文档应用程序的主窗体,它将作为子窗体的容器。
2、再新建一个窗体,是作为子窗体的,子窗体就不用设置什么属性了。
然后开始代码:
你需先了解多文档操作的一个属性:MdiParent——用于为子窗体设置关联的父窗体。
注明:新建一个子窗体,要在主窗体中创建菜单,例如——新建菜单。
第一步:在“新建菜单”点击事件中添加以下代码。
//创建一个子窗体对象,创建时要设置子窗体MdiParent属性,将此属性设置为它所属的主窗体对象“this”即可
Document childForm = new Document(); //Document是我子窗体的名称,也就是类名
第二步:为子窗体设置关联的父窗体,然后现在子窗体。
childForm.MdiParent = this; // childForm.Show();
希望能帮到你。
我这里的a不是父窗体 b是MDI窗体的子窗体,但现在需要在a窗体里面设置b窗体在mdi窗体中show出来