/// <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()); }