/// <summary>
/// 动态加载dll
/// 反射
/// </summary>
private void dynamicDll()
{
string dllName = "dll";
Assembly ass = Assembly.Load(dllName); //加载dll文件
dllName = dllName + "." + "frmMain";
Type[] tt= ass.GetTypes();
Type tp = ass.GetType(dllName); //获取类名,必须 命名空间+类名
// Object obj = Activator.CreateInstance(tp); //建立实例
Form obj = (Form)Activator.CreateInstance(tp); //建立实例
obj.Visible = false; // 放在form之前会有闪,加这个,主要是为了用户体验
//obj.Show(); 这个必须有,不然显示不出来
obj.TopLevel = false; //这个必须有不然会提示:"不能向tabControl中添加顶级控件"
obj.Dock = DockStyle.Fill;
obj.FormBorderStyle = FormBorderStyle.None;
groupBox1.Controls.Add(obj);
obj.Visible = true;/ / 放在form之前会有闪,加这个,主要是为了用户体验
// MethodInfo meth = tp.GetMethod("add"); //获取方法
// int t = Convert.ToInt32(meth.Invoke(obj, new Object[] { 2, 3 })); //Invoke调用方法
// obj.ShowDialog();
// MessageBox.Show(t.ToString());
}
转载于:https://www.cnblogs.com/shuenjian901/p/3510089.html