如何实现单实例的MDI子窗体
这也是前两天课程中的案例。讨论的是,MDI子窗体是否也可以实现单实例
这当然是可以做到的,我们通过下面这个方法来做就可以了
private void ShowMdiChildForm(Type formType,bool singleinstance,params object[] args) { //这个方法可以加载任何的窗口作为MDI子窗体 if (singleinstance) { foreach (var item in this.MdiChildren) { if (item.GetType() == formType) { item.WindowState = FormWindowState.Maximized; item.Activate(); return; } } } Form form = (Form)this.GetType().Assembly.CreateInstance( formType.FullName, true, BindingFlags.Instance| BindingFlags.Public, null,args, Thread.CurrentThread.CurrentCulture, null); form.WindowState = FormWindowState.Maximized; form.MdiParent = this; form.Show(); }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步