如何在父类中引用子类中的特有类型 (如 子类form上关于某个表的TableAdapter),目前思路是在父类中添加遍历子类中的所有东西(如 遍历继承form上的所有控件),找到需要的之后,把它转化会需要的类型使用它.是不是可以使用反射之类的这个object转化为需要的类型.
代码如下:
//父类中遍历子类form上的控件,并使用它的
private void findcontrol(Control.ControlCollection controls)
{
foreach (Control ctrl in controls)//类似这样遍历子类中的控件或组件
{
if (ctrl.GetType().Name == "客户TableAdapter")//客户表单上某个表的TableAdapter
{
//把ctrl强类型化为客户TableAdapter来使用
//例 客户TableAdapter.Update(客户DataTable);
//让ctrl像,客户TableAdapter那样用
}
findcontrol(ctrl.Controls);
}
}
代码如下:
//父类中遍历子类form上的控件,并使用它的
private void findcontrol(Control.ControlCollection controls)
{
foreach (Control ctrl in controls)//类似这样遍历子类中的控件或组件
{
if (ctrl.GetType().Name == "客户TableAdapter")//客户表单上某个表的TableAdapter
{
//把ctrl强类型化为客户TableAdapter来使用
//例 客户TableAdapter.Update(客户DataTable);
//让ctrl像,客户TableAdapter那样用
}
findcontrol(ctrl.Controls);
}
}
解决方案 »
- DropDownList
- 怪事,datagridview的列的序号,为何与实际不一致呢?
- 请问c++ 中char[] 在c#中应该是什么类型啊?
- 大哥们,如何将我自己建的datatable添加到数据库的表中?
- 怎么得到合成文件的名称!!!急!!!
- 求助实现远程后台截屏
- 字符串截取
- 大问题,我的 Project 中 aspx 文件 无法引用 javascript 脚本的头文件
- 怎么播放背景音乐呢?
- 再问一个关于datagrid的问题
- 关于SetWindowsHookEx 的问题
- 请高手提供解决方案(银行的一个小程序) 非常谢谢 ,在线等待 ........................................
{
foreach (Control ctrl in controls)//类似这样遍历子类中的控件或组件
{
//假设客户表单上某个表的TableAdapter的实际类型为MyControl
MyControl c=ctrl as MyControl;//转换成实际类型,如果不能转换则为null
if(c!=null&&c.GetType().Name == "客户TableAdapter")//客户表单上某个表的TableAdapter
//if (ctrl.GetType().Name == "客户TableAdapter")//客户表单上某个表的TableAdapter
{
//把ctrl强类型化为客户TableAdapter来使用
//例 客户TableAdapter.Update(客户DataTable);
//让ctrl像,客户TableAdapter那样用
}
findcontrol(ctrl.Controls);
}
}
要想调用子类的方法,必须将指向子类的父类引用转换成子类才行的。
1.子form上的这个XXTableAdapter怎样才能遍历到,遍历form上的控件和组件都遍历不到
2.请问怎么判断XXTableAdapter的实际类型,用的是sql的连接,可是怎么判断她到底是不是sqldataadpter类型呢?
第一个问题,XXTableAdapter没有加到Form里去,所以找不到.第二个问题,用is关键字.或者用GetType()方法,都可以.