打赏

反射调用功能组件

#region 反射调用功能组件
        /// <summary>
        /// 反射组件通用事件
        /// </summary>
        public class ReflectionFunction
        {
            /// <summary>
            /// 反射调用Mdi窗体
            /// </summary>
            /// <param name="FunctionAssemblyFileName">功能程序集文件名称</param>
            /// <param name="AssemblyNamespaceAndClass">[功能程序集命名空间].[类名(窗体名)]</param>
            /// <param name="MdiParentForm">Mdi父窗体</param>
            /// <param name="functionParameter">功能模块传递参数组件r</param>
            /// <returns></returns>
            public Form LoadMdiForm(string FunctionAssemblyFileName, string AssemblyNamespaceAndClass, Form MdiParentForm, MBERP.COMMON.GlobalParms.FunctionParameter globalParms)
            {
                return LoadForm(FunctionAssemblyFileName, AssemblyNamespaceAndClass, MdiParentForm, globalParms);
            }
            /// <summary>
            /// 反射调用模式Dialog窗体
            /// </summary>
            /// <param name="FunctionAssemblyFileName">功能程序集文件名称</param>
            /// <param name="AssemblyNamespaceAndClass">[功能程序集命名空间].[类名(窗体名)]</param>
            /// <param name="functionParameter">功能模块传递参数组件</param>
            /// <returns></returns>
            public Form LoadDialogForm(string FunctionAssemblyFileName, string AssemblyNamespaceAndClass, MBERP.COMMON.GlobalParms.FunctionParameter globalParms)
            {
                return LoadForm(FunctionAssemblyFileName, AssemblyNamespaceAndClass, null, globalParms);
            }
            /// <summary>
            /// 反射调用Mdi窗体
            /// </summary>
            /// <param name="FunctionAssemblyFileName">功能程序集文件名称</param>
            /// <param name="AssemblyNamespaceAndClass">[功能程序集命名空间].[类名(窗体名)]</param>
            /// <param name="MdiParentForm">Mdi父窗体</param>
            /// <param name="functionParameter">功能模块传递参数组件HR.Win.FunctionParameter</param>
            /// <returns></returns>
            public Form LoadForm(string FunctionAssemblyFileName, string AssemblyNamespaceAndClass, Form MdiParentForm, MBERP.COMMON.GlobalParms.FunctionParameter globalParms)
            {
                string AssemblyFilePath = Application.StartupPath + "\\" + FunctionAssemblyFileName;
                if (File.Exists(AssemblyFilePath) == true)
                {
                    System.Reflection.Assembly assembly = Assembly.LoadFile(AssemblyFilePath);
                    Type FormType = assembly.GetType(AssemblyNamespaceAndClass, true, true);
                    Form frm = FormType.InvokeMember(null,
                     System.Reflection.BindingFlags.DeclaredOnly
                    | System.Reflection.BindingFlags.Public
                    | System.Reflection.BindingFlags.NonPublic
                    | System.Reflection.BindingFlags.Instance
                    | System.Reflection.BindingFlags.CreateInstance,
                    null, null, null) as Form;
                    frm.Tag = globalParms;
                    if (MdiParentForm == null)
                    {
                        frm.StartPosition = FormStartPosition.CenterScreen;
                        Application.DoEvents();
                        //frm.ShowDialog();
                    }
                    else
                    {
                        frm.MdiParent = MdiParentForm;//如果是Mdi窗体就用frm.MdiParent
                        //frm.Show();
                        frm.WindowState = FormWindowState.Maximized;
                    }
                    if (frm.MaximizeBox == true)
                    {
                        frm.WindowState = FormWindowState.Maximized;
                    }
                    else
                    {
                        frm.WindowState = FormWindowState.Normal;
                    }
                    return frm;
                }
                return null;
            }
        }
        #endregion

posted @ 2011-11-19 10:11  loring  阅读(337)  评论(0编辑  收藏  举报