项目中我所有的窗体都是动态实例化并在DOCKPANEL中打开,代码如下:
#region 实例化窗体 /// <summary>
/// 动态加载WINFORM窗体
/// </summary>
/// <param name="p_AssemblyName">程序集名 </param>
/// <param name="p_TypeForm">窗体类名 (全路径) </param>
/// <returns>Form实例 </returns>
public static Form LoadForm(string p_TypeForm)
{
//得到程序集名称
string p_AssemblyName = System.Reflection.Assembly.GetExecutingAssembly().ToString().Substring(0, System.Reflection.Assembly.GetExecutingAssembly().ToString().IndexOf(","));
Assembly _Assembly = Assembly.Load(p_AssemblyName);
Type _FormType = _Assembly.GetType(p_TypeForm);
object _LoadForm = _FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
return (Form)_LoadForm;
}
#endregion通过以下代码判断窗体是否已经打开:
#region 判断加载的窗体是否已经打开
/// <summary>
/// 判断加载的窗体是否已经打开
/// </summary>
/// <returns>已经打开返回TRUE,否则返回false</returns>
public static bool IsOpendForm(string text)
{
bool rBool = false;
if (!string.IsNullOrEmpty(text))
{
foreach (IDockContent content in MainForm.pCurrentWin.dockPanel.Documents)
{
if (content.DockHandler.TabText == text)
{
content.DockHandler.Activate();
rBool = true;
break;
}
}
}
return rBool;
}
#endregion然而浮动窗口无法通过上面的方法判断是否已经打开。
#region 实例化窗体 /// <summary>
/// 动态加载WINFORM窗体
/// </summary>
/// <param name="p_AssemblyName">程序集名 </param>
/// <param name="p_TypeForm">窗体类名 (全路径) </param>
/// <returns>Form实例 </returns>
public static Form LoadForm(string p_TypeForm)
{
//得到程序集名称
string p_AssemblyName = System.Reflection.Assembly.GetExecutingAssembly().ToString().Substring(0, System.Reflection.Assembly.GetExecutingAssembly().ToString().IndexOf(","));
Assembly _Assembly = Assembly.Load(p_AssemblyName);
Type _FormType = _Assembly.GetType(p_TypeForm);
object _LoadForm = _FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
return (Form)_LoadForm;
}
#endregion通过以下代码判断窗体是否已经打开:
#region 判断加载的窗体是否已经打开
/// <summary>
/// 判断加载的窗体是否已经打开
/// </summary>
/// <returns>已经打开返回TRUE,否则返回false</returns>
public static bool IsOpendForm(string text)
{
bool rBool = false;
if (!string.IsNullOrEmpty(text))
{
foreach (IDockContent content in MainForm.pCurrentWin.dockPanel.Documents)
{
if (content.DockHandler.TabText == text)
{
content.DockHandler.Activate();
rBool = true;
break;
}
}
}
return rBool;
}
#endregion然而浮动窗口无法通过上面的方法判断是否已经打开。
解决方案 »
- C# 调用api操作ini如何读取某一段落的全部数据呢
- 取路由器的路由表
- Dreamweaver CS3代码复制到VS2005/2008(的困惑)
- 如何用Windows media SDK 开发C/S应用程序,请大家进来来看看
- Winform 的DataGridView的column怎么做成多层的.
- c#调用 wmic.exe 的问题
- 大家是如何学习C#的? 希望能给点建议.
- 求OA系统(asp.net+c#)源代码,redbb看进来
- wpf inkcanvas 判断画笔颜色重叠
- 我想用一个全局的OleDbConnection对象,在应用运行的整个过程都保持连接,可以用类库引用的方法吗?如何实现丫,谢谢!!
- WinForm窗体如何取窗体中控件输入值??请求帮助!!!
- player.currentMedia.durationString输出00:00求解
foreach (IDockContent content in MainForm.pCurrentWin.dockPanel.Contents)
{
if (content.DockHandler.TabText == text)
{
content.DockHandler.Activate(); rBool = true;
break;
}
}
你用第三方的控件,问问题又不说清楚,估计没人帮得了你,幸好你自己搞定了.