以下是代码
Type winType = Type.GetType(searchWindowName);
            object o = System.Activator.CreateInstance(winType);
            MethodInfo mi = winType.GetMethod("ShowDialog");
            mi.Invoke(o,null);
searchWindowName是窗体名称
在使用中总是提示无法找到ShowDialog方法,编译不通过,请教各位该如何写,谢谢

解决方案 »

  1.   

    1。加上完整的类路径,要包括命名空间;
    2。对于重载的函数,要传递与指定参数类型及修饰符匹配的参数。参考下面获取无参数ShowDialog方法的代码: private void button1_Click(object sender, System.EventArgs e)
    {
    Type winType = Type.GetType("test_Winform.Form6");
    object o = System.Activator.CreateInstance(winType);
    System.Reflection.MethodInfo mi = winType.GetMethod("ShowDialog", 
    new Type[0], new ParameterModifier[0]);
    mi.Invoke(o,null);
    }
      

  2.   

    我写的反射,使用一下
    string strqq = @"E:\c#\Study\ShowEXE\ShowEXE\bin\Debug\ShowEXE.exe";//反射调用From的地址
    Assembly asm = Assembly.LoadFile(strqq);
    Type type = asm.GetType("ShowEXE.Form1");
    Object obj = Activator.CreateInstance(type);
    form = (System.Windows.Forms.Form)obj;
    form.ShowDialog();
      

  3.   

    补充一下Form form = null;