DotNetBar控件的多文档界面-查找子窗口是否存在
参考:DotNetBar控件的多文档界面的实现 可实现多文档界面,
但是查找子窗口是否存在的方法不太严谨,因为文章里 查找子窗口是否存在的依据是判断 窗口的标题是否存在、
改进下通过类的类型名来判断应该更加好点。要显示一个子窗口 写了个一个统一方法 ShowFrm;
//by wgscd 2015-07-01
//外部调用 : ShowFrm(typeof(LoginFrm));
public void ShowFrm(Type waitFrm, string caption = "") { foreach (SuperTabItem tabItem in this.NavTabControl.Tabs) { if (tabItem.AttachedControl.Controls.Count <= 0) {continue;} if (tabItem.AttachedControl.Controls[0].GetType() == waitFrm) { //frm.Activate(); NavTabControl.SelectedTab = tabItem; return ; } } Form form = (Form)waitFrm.Assembly.CreateInstance(waitFrm.FullName);//动态创建类型 if (form == null) return; if ( string.IsNullOrEmpty(caption)) { caption = form.Text; } SuperTabItem tabItem1 = NavTabControl.CreateTab(caption); tabItem1.Name = tabItem1.Text = caption; form.FormBorderStyle = FormBorderStyle.None; form.TopLevel = false; form.Visible = true; form.Dock = DockStyle.Fill; //tabItem.Icon = form.Icon; tabItem1.AttachedControl.Controls.Add(form); NavTabControl.SelectedTab = tabItem1; }
fffffffffffffffff
test red font.