c# 反射得到的Form,如何遍历得到里面的Devexpress GridView控件?

yigeyanse 2014-09-14 09:10:21
Form childForm = (Form)System.Reflection.Assembly.Load(assemblyName).CreateInstance(assemblyName);

foreach (Control c in childForm.Controls)
{
if (c.GetType() == typeof(DevExpress.XtraGrid.Views.Grid.GridView))
{
c.MouseUp += new System.Windows.Forms.MouseEventHandler(this.gridView1_MouseUp);
}
}

这样永远得不到==的情况,Control无法转换为GridView。
请问,该怎么遍历获取?
...全文
743 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 yigeyanse 的回复:
[quote=引用 4 楼 davinciyxw 的回复:] 是的,GridView取不到的。 你取到GridControl后,再用GridControl.Views, GridControls.MainView, GridControl.FocusedView等属性来查找你需要的GridView
可不可以,使用 用户控件 的方式来,个性化定制自己需要的GridView控件?[/quote] UserControl?这种方式没试过,建议你还是先获取GridControl,再创建一个GridView,并在这个View上添加你需要的东西。
  • 打赏
  • 举报
回复
是的,GridView取不到的。 你取到GridControl后,再用GridControl.Views, GridControls.MainView, GridControl.FocusedView等属性来查找你需要的GridView
大头说 2014-09-15
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
估计是你的GridView并非是窗体直接的子控件,而是外面包了Panel PictureBox之类的东西,那么你还要先用Controls得到外围的容器,继续调用容器的Controls,再在里面找。
就是这样,递归查下去
yigeyanse 2014-09-15
  • 打赏
  • 举报
回复
引用 4 楼 davinciyxw 的回复:
是的,GridView取不到的。 你取到GridControl后,再用GridControl.Views, GridControls.MainView, GridControl.FocusedView等属性来查找你需要的GridView
可不可以,使用 用户控件 的方式来,个性化定制自己需要的GridView控件?
yigeyanse 2014-09-15
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
建议你使用接口,例如
public interface IMyDevInterface
{
    Control[] GetControls{get;}
}
然后让你的 childForm 按照接口去访问。 不要想当然地去读什么 Controls 集合。
谢谢您的回复,我现在的需求是:Devexpress框架中,主界面通过读取数据库,利用反射动态创建Form。现在要在每个Form中的GridView中绑定一个实现弹出右键菜单(popupMenu)的事件,所以想在反射实例化时,获取到GridView然后绑定。 不知道,您有什么好的方法?请指教
  • 打赏
  • 举报
回复
建议你使用接口,例如
public interface IMyDevInterface
{
    Control[] GetControls{get;}
}
然后让你的 childForm 按照接口去访问。 不要想当然地去读什么 Controls 集合。
threenewbee 2014-09-14
  • 打赏
  • 举报
回复
估计是你的GridView并非是窗体直接的子控件,而是外面包了Panel PictureBox之类的东西,那么你还要先用Controls得到外围的容器,继续调用容器的Controls,再在里面找。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧