防止冲DockContent继承的窗体重复打开
2010-09-13 22:50
211 查看
string strDllName = item.Tag.ToString().Trim().Substring(0, item.Tag.ToString().Trim().IndexOf("*"));
string strFrmName =item.Tag.ToString().Trim().Substring(item.Tag.ToString().Trim().IndexOf("*") +1,item.Tag.ToString().Trim().Length- item.Tag.ToString().Trim().IndexOf("*")-1) ;
try
{
object obj = Assembly.LoadFrom(strDllName + ".DLL").CreateInstance(strDllName.Substring(0, strDllName.Length - 3) + "." + strFrmName);
if (obj != null)
{
if (((frmMain)GetTopParent(this)).DockPanel.DocumentStyle == DocumentStyle.SystemMdi)
{
((DockContent)obj).MdiParent = (frmMain)GetTopParent(this);
((DockContent)obj).Show();
}
else
{
for (int i = 0; i < this.DockPanel.Contents.Count; i++)
{
if (this.DockPanel.Contents[i].GetType().ToString() == obj.GetType().ToString() )
{
this.DockPanel.ActiveDocumentPane.ActiveContent = (DockContent)this.DockPanel.Contents[i]; //已经打开则击活
return;
}
}
((DockContent)obj).Show(((frmMain)GetTopParent(this)).DockPanel);
}
}
string strFrmName =item.Tag.ToString().Trim().Substring(item.Tag.ToString().Trim().IndexOf("*") +1,item.Tag.ToString().Trim().Length- item.Tag.ToString().Trim().IndexOf("*")-1) ;
try
{
object obj = Assembly.LoadFrom(strDllName + ".DLL").CreateInstance(strDllName.Substring(0, strDllName.Length - 3) + "." + strFrmName);
if (obj != null)
{
if (((frmMain)GetTopParent(this)).DockPanel.DocumentStyle == DocumentStyle.SystemMdi)
{
((DockContent)obj).MdiParent = (frmMain)GetTopParent(this);
((DockContent)obj).Show();
}
else
{
for (int i = 0; i < this.DockPanel.Contents.Count; i++)
{
if (this.DockPanel.Contents[i].GetType().ToString() == obj.GetType().ToString() )
{
this.DockPanel.ActiveDocumentPane.ActiveContent = (DockContent)this.DockPanel.Contents[i]; //已经打开则击活
return;
}
}
((DockContent)obj).Show(((frmMain)GetTopParent(this)).DockPanel);
}
}
相关文章推荐
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- Winform中防止重复打开多个相同子窗体的方法
- C# Winform 防止MDI子窗体重复打开
- winform防止主窗体,子窗体重复打开(一)
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- winform中防止重复打开多个相同子窗体
- 在WinForm中,如何实现MDI窗体及防止重复打开子窗体
- C# Winform 防止MDI子窗体重复打开
- 如何防止窗体重复打开(程序或表单重复运行)?
- 窗体程序 防止重复打开子窗体
- 如何防止窗体重复打开(程序或表单重复运行)?
- 使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- C#之Winform中防止重复打开同一子窗体
- [转]使用C#打开新窗口关闭旧窗口的方法;winform中防止重复打开多个相同子窗体
- c# MDI子窗体不重复打开
- 一套.net窗体身份验证方案(解决了防止用户重复登陆,session超时等问题)
- 如何使MDI子窗体不重复被打开
- 在winform中,MDI窗体不能打开重复窗体
- 防止C++程序重复打开
- MDI窗体设计中,避免重复打开同一个子窗体——详解