日期:2014-05-18  浏览次数:20860 次

请问如何得到当前的对象
有一个TreeView,一个DataGridView,以及一个按钮Button,单击TreeView上的节点时由不同的类生成对象,生成对象的一个属性DataTable 显示在DataGridView里,这时我想单击Button时导出当前显示在DataGridView里的当前对象的DataTable。

现在的问题是如何在Button的OnClick事件里判断当前显示在DataGridView里的这个对象呢?是不是应该把 导出方法 添加到Button的OnClick事件里面?

------解决方案--------------------
有一个TreeView,一个DataGridView,以及一个按钮Button,单击TreeView上的节点时由不同的类生成对象[b][/b],生成对象的一个属性DataTable 显示在DataGridView里,这时我想单击Button时导出当前显示在DataGridView里的当前对象的DataTable。 


把红色的这个对象保存到类成员变量里,在button的onclick中可以访问这个变量。
------解决方案--------------------
不知道我有没有理解错:

你先单击TreeView上的节点,然后生成DataTable在DataGridView里显示。
然后单击Button想导出这个DataTable

直接就是DataGridView对应的数据集就是了呀,不需要管它是哪个对象的, who cares?

然后,你想要单击Button时导出,当然就是在Button的onclick事件时写代码啦……
------解决方案--------------------
看题意你是想找到这个对象并使用它吧,如果是要使用这个对象的话:

1、在你的类里加一个object的成员变量。
private object currentObj;

2、单击TreeView上的节点时,currentObj = 单击TreeView上的节点时生成的对象
 
3、你既然是通过单击TreeView上的节点时由不同的类生成对象,那么通过 treeView.SelectedNode可以知道当前选中的treeView节点,也就知道了DataGridView里的当前对象的类型,下面是如何使用这个对象

Type type = Type.GetType(typeString);//typeString就是上面说的对象的类型的名字,这里一定要写类型的全称,即:命名空间.类名
System.Reflection.MethodInfo method = type.GetMethod(MethodName);//MethodName是该对象的方法名,你要调用对象的方法,方法名肯定知道啦
method.Invoke(currentObj, null);//currentObj就是你保存的那个对象,第二个是方法中用到的参数,有的话用object[]就成了