项目中我所有的窗体都是动态实例化并在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然而浮动窗口无法通过上面的方法判断是否已经打开。

解决方案 »

  1.   

    自己解决了
    foreach (IDockContent content in MainForm.pCurrentWin.dockPanel.Contents)
                    {
                        if (content.DockHandler.TabText == text)
                        {
                            content.DockHandler.Activate();                        rBool = true;
                            break;
                        }
                    }
      

  2.   

    WindowForm有DockPanel控件吗?
    你用第三方的控件,问问题又不说清楚,估计没人帮得了你,幸好你自己搞定了.
      

  3.   

    如果是From,好像可以遍历Appclition.openFroms