C#dev控件-在父窗口load里增加函数获取窗口GridView并给指定的view增加指定列

金大哈 2020-01-14 09:26:58
如题,因为窗口太多,都继承了这个父窗口,现在想统一给这些窗口增加一个公共的显示列

如何添加

如果在一个特定窗口增加一个显示列比较简单,如下

public static void AddColumn(DevExpress.XtraGrid.Views.Grid.GridView gv)
{
DevExpress.XtraGrid.Columns.GridColumn gc = new DevExpress.XtraGrid.Columns.GridColumn();
gc.Caption = "自动添加列";
gc.FieldName = "recorder";
gc.Name = "gridColumn1xxx";
gc.Width = 80;
gc.VisibleIndex = 3;
gc.OptionsColumn.ReadOnly = true;
gv.Columns.Add(gc);
}


主要是在父窗口遍历添加遍历窗口控件的方式也获取不到gridview
可以获取到gridcontrol,获取到gridcontrol后怎么获取gridview并添加列

感谢大神指点

...全文
172 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
杀马特丶蛮牛 2020-01-14
  • 打赏
  • 举报
回复
如果gridcontrol都一样,那你弄个自定义控件不是更方便
杀马特丶蛮牛 2020-01-14
  • 打赏
  • 举报
回复
每个子窗口加个属性,grid control gc,父窗口取gc加列
金大哈 2020-01-14
  • 打赏
  • 举报
回复
谢谢各位,
https://blog.csdn.net/qq_35351282/article/details/80728989

这个博客已经解决了问题



/// <summary>
/// 在窗体中根据名称查找gridview需要增加的列
/// </summary>
public void GetGridViewInWin()
{
try
{
//取得窗体属性
Type FormType = this.GetType();
//取得所有控件
//FieldInfo[] fi = FormType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);


//取得指定名字的控件
FieldInfo fi = FormType.GetField("gridView1", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);
//如果gridview进行下列判断
if (fi.FieldType == typeof(DevExpress.XtraGrid.Views.Grid.GridView))
{
DevExpress.XtraGrid.Views.Grid.GridView gv = (fi.GetValue(this)) as DevExpress.XtraGrid.Views.Grid.GridView;

}

}
catch
{
}
}

110,567

社区成员

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

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

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