34 Form frm = type.Assembly.CreateInstance(type.ToString()) as Form; 35 frm.MdiParent
主窗口中已经存在相同类型的子窗口,则直接激活 /// /// <typeparam name="T">MDI子窗体类型</typeparam> /// <param name="<em>mdiParent</em> 主窗体引用</param> /// <returns>当前创建或得到的MDI子窗体类型实例的引用</returns> private T OpenUniqueMDIChildWindow<T>(Form <em>mdiParent</em> ) where T : Form, new() { foreach (Form subForm in <em>mdiParent</em>.MdiChildren) { if (subForm.GetType subForm.Activate(); return subForm as T; } } T newForm = new T(); newForm.<em>MdiParent</em> = <em>mdiParent</em>; newForm.Show(); return newForm; } 这个方法可以放在你的菜单项的单击事件处理方法中。
: C# Code: //父窗体是是frmParent,子窗体是frmChildA //在父窗体中打开子窗体 frmChildA child = new frmChildA(); child.MdiParent (this.MdiParent as frmParent).ParentFoo(); //来源:C/S框架网(www.csframework.com) QQ:1980854898 知道错在那里吗 private void btnParentFoo_Click(object sender, EventArgs e) { //调用父窗体的ParentFoo()方法 if ((this.MdiParent =null) && (this.MdiParentis IMdiParent)) (this.MdiParent as IMdiParent).ParentFoo(); } private void btnErrCall_Click(object sender, EventArgs e) { //错误的调用 (this.MdiParent as frmParent)
View Code
///
object sender, EventArgs e) { Form1 childForm = new Form1(); childForm.MdiParent object sender, EventArgs e) { Form1 childForm = new Form1(); childForm.MdiParent
Form3 obj = new Form3(); obj.MdiParent= this;//这句代码也要写上,否则会出错。 Controls.Clear(); RFIDMangementPlatform obj = new RFIDMangementPlatform(); obj.MdiParent splitContainer1.Panel2.Controls.Clear(); Form3 obj = new Form3(); obj.MdiParent splitContainer1.Panel2.Controls.Clear(); Form3 obj = new Form3(); obj.MdiParent
selectinfoMenuItem.Click Dim formSearchStudent As New FormSearchStudent formSearchStudent.MdiParent updateinfoMenuItem1.Click Dim formStudentInfo As New FormStudentInfo FormSearchStudent.MdiParent importscoreMenuItem.Click Dim formStudentCourse As New FormStudentCourse FormSearchStudent.MdiParent
formsyspara.WindowState = FormWindowState.Maximized; formsyspara.MdiParent
} public override void Run(params object[] parameters) { this.MdiParent
//原来的代码内容:childForm3.Show(); //下面是更改后的代码内容 childForm2.MdiParent = this.MdiParent; childForm2.Show(); } } 1-5 菜单和菜单组件 u 本节学习目标:
ToolStripMenuItem_Click(object sender, EventArgs e) { Form fm = new goodsAdd(); fm.MdiParent ToolStripMenuItem_Click(object sender, EventArgs e) { Form fm = new useradd(); fm.MdiParent object sender, EventArgs e) { Form fm = new StoreRegularManage(); fm.MdiParent Click(object sender, EventArgs e) { Form fm = new OrderDetail(); fm.MdiParent object sender, EventArgs e) { passwordmodify fm = new passwordmodify(); fm.MdiParent
返回类对象 { if (ftb == null || ftb.IsDisposed) //判断是否已经引用了对象或者已经清理掉 { ftb = new FormToolbox(); ftb.MdiParent
多窗口应用程序 比如Excel 浏览器等 至少由连个窗口组成 包括顶级框架窗口(也叫mdi容器)其他文档窗口(也叫子窗口) 创建mdi的步骤 1父窗体的ISMDIIContainer属性设为true 子窗体的Mdiparent
writingBoard = new WritingBoard(); writingBoard.TopLevel = false; writingBoard.MdiParent writingBoard = new WritingBoard(); writingBoard.TopLevel = false; writingBoard.MdiParent
frmEdit.Tag = new TagObject() { EditId = stuId, Reload = reload }; frmEdit.MdiParent = this.MdiParent; frmEdit.Show(); } else if (cell
frmEdit.Tag = new TagObject() { EditId = stuId, Reload = reload }; frmEdit.MdiParent = this.MdiParent; frmEdit.Show(); } else if (cell
Then '创建一个ChildForm对象,并将缓存起来 instance = New ChildForm instance.MdiParent
MDIParent主界面 查询界面 ? 修改界面 ? mysql数据表 ?
子窗体时,被Disable的是MDI主窗体 //并且Parent也会指向MDI主窗体,故需改回为Owner,这样弹出窗体的Location才会相对于Owner而非MDIParent NativeMethods.EnableWindow(Owner.MdiParent.Handle, true); NativeMethods.SetParent this.Location = pt; //设置Owner属性与Show[Dialog](Owner)有不同,当Owner是MDIChild时,后者会改Owner为MDIParent
第六节:主从窗体 主窗体的isMdiContainer属性设置成true,在打开子窗体的代码中,设置子窗体的MdiParent=this; Form2 fm = new Form2(); fm.Show (); fm.MdiParent = this; 视频课:https://edu.51cto.com/course/20906.html 第七章:连接数据库 第一节:ADO.NET的结构 数据库访问的顺序 FmClassUpdate(); fcu.classId = classId;//给FMClassUpdate窗体中的classId属性赋值 fcu.ShowDialog();//以模态窗体的形式显示修改窗体 fcu.MdiParent = this.MdiParent;//将修改窗体的父窗体设置为主窗体 三 、在修改窗体的load事件中根据传进来的classId查询班级信息,并将班级信息填入相应的组件中。