RT :
MethodInfo mi = typeof(FrmCPGrabByIndeed).GetMethod("BAIDURSS");
mi.Invoke(Activator.CreateInstance(typeof(FrmCPGrabByIndeed), null), null);public void BAIDURSS(){
 listView1.Items.Add(new ListViewItem("111"));
}
程序里通过反射调用BAIDURSS方法调试断点能进方法内并且都能成功执行完成  但是页面上listView1列表没变(该方法在不用反射调用情况下是正确的,为什么用了反射 listView1动态添加数据就不行了呢)  我的是winform程序

解决方案 »

  1.   

    你通过Activator.CreateInstance(typeof(FrmCPGrabByIndeed)相当于new FrmCPGrabByIndeed()新实例了
    mi.Invoke(当前FrmCPGrabByIndeed实例, null);
      

  2.   

    mi.Invoke(null,null) 第一个参数如果为null的话调用的方法必须是static的  我也尝试了把方法写成static  但是listView1.Items.Add(new ListViewItem("111"));这句在静态方法里又报错 
     你可有合适的方法?
      

  3.   

    mi.Invoke(当前FrmCPGrabByIndeed实例, null);
    这个看不懂吗?
    listView1在哪个Form实例里就传哪个
    比如FrmCPGrabByIndeed form1 = new FrmCPGrabByIndeed();如果反射的代码就写在FrmCPGrabByIndeed,那你就传this不过,说实话,这种问题都是用委托(事件驱动),反射着玩一玩也就罢了
      

  4.   

    如果你是在别的Form里FrmCPGrabByIndeed form1 = new FrmCPGrabByIndeed();那就传form1