反射调用功能组件
#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
作者:返回主页 linux运维-loring 出处:http://www.cnblogs.com/zlf344242525/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |