private void button_Click(object sender, EventArgs e)
{
//通过按钮名称打开窗体
string btnName = ((Button)sender).Tag.ToString();
string name = Assembly.GetExecutingAssembly().GetName().Name; //获取当前程序集名称
CreateForm(MethodBase.GetCurrentMethod().DeclaringType.Namespace + "." + btnName, name);
//CreateForm(this.GetType().Namespace + "." + btnName, name);
//StackTrace st = new StackTrace(true);
//MethodBase mb = st.GetFrame(1).GetMethod();
//Console.WriteLine(mb.DeclaringType.Namespace.ToString());
//Type[] type = Assembly.GetExecutingAssembly().GetTypes(); //获取当前所有程序集名称
//Console.WriteLine(name);
//Console.WriteLine(MethodBase.GetCurrentMethod().DeclaringType.Namespace.ToString());
}
/// <summary>
/// 通过反射实例化窗体
/// </summary>
/// <param name="AssemblyName">根程序集名称</param>
/// <param name="CurrentAssemblyName">当前要创建的窗体程序集名称</param>
public void CreateForm(string CurrentAssemblyName, string AssemblyName)
{
Form frm = (Form)Assembly.Load(AssemblyName).CreateInstance(CurrentAssemblyName);
frm.Show();
}