请选择 进入手机版 | 继续访问电脑版

12360技术网 - 专业IT技术发表平台

 立即注册  找回密码
查看: 5535|回复: 6

C# WinForm反射窗体控件gridView并对其增加列操作

[复制链接]

14

主题

21

帖子

209

积分

中级会员

Rank: 3Rank: 3

积分
209
发表于 2020-1-16 19:55:02 | 显示全部楼层 |阅读模式
  1.         ///         /// 在窗体中根据名称查找gridview需要增加的列        ///         public void GetGridViewInWin()        {            try            {                BLL.SYS.ctlmWinAddColumn bllColumn = new BLL.SYS.ctlmWinAddColumn();                //取得窗体属性                Type FormType = this.GetType();                //取得所有控件                //FieldInfo[] fi = FormType.GetFields(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public);                string FieldName="";                DataTable dtList = bllColumn.GetColumnByWinAndGridid(this.FindForm().GetType().FullName);//查找窗口控件数据列表                foreach (DataRow dr in dtList.Rows)                {                    //取得指定名字的控件                    FieldInfo fi = FormType.GetField(dr["gridViewId"].ToString().Trim(), 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;                        FieldName = dr["FieldName"].ToString();                        DevExpress.XtraGrid.Columns.GridColumn gc = new DevExpress.XtraGrid.Columns.GridColumn();                        gc.Caption = dr["Caption"].ToString();                        gc.FieldName = FieldName;                        gc.Name = dr["GridColumnName"].ToString();                        gc.Width = Convert.ToInt32(dr["Width"]);                        gc.VisibleIndex = Convert.ToInt32(dr["locationIndex"]);                        gc.OptionsColumn.ReadOnly = Convert.ToBoolean(dr["readOn"]);                        gc.OptionsColumn.AllowEdit = Convert.ToBoolean(dr["allowEdit"]);                        gc.ColumnEdit = bllColumn.SetLookUpEdit(FieldName);                        gv.Columns.Add(gc);                    }                }            }            catch             {             }        }
复制代码
主要实现自动添加gridView列,日常新增列时可以不用修改程序,维护基础数据即可
有下拉子窗口用的方法应该不是很好,如果有更好的方法,下面留言,感谢
存在下来的判断FieldName,有返回ColumnEdit的数据源即可
  1.         ///         /// 设置有LOOKUPEdit的列        ///         ///         ///         public DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit SetLookUpEdit(string FieldName)        {            DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit rep = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();            if (FieldName == "check_type")            {                rep.ValueMember = "value";                rep.DisplayMember = "name";                rep.DataSource = (new BLL.List()).GetType();                return rep;            }            else                return null;        }//(new BLL.List()).GetType(); 为获取LookUpEdit的数据源
复制代码
 
                                                                                                                        
                                                    
  • 点赞                        1                        
  • 收藏                        
  • 分享                                                                                                                        
  •                                                         
                                      
    • 文章举报                           
                                                
                                                                        
                                            
                                                        jjl_sky                                                                发布了2 篇原创文章 · 获赞 2 · 访问量 86                                                                                            私信                                                            关注
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




上一篇:想要右键在新建文件栏中添加.md文件?注意以下细节!
下一篇:RBAC系统经典五张表
回复

使用道具 举报

0

主题

11

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2020-1-17 22:11:46 | 显示全部楼层
既然你诚信诚意的推荐了,那我就勉为其难的看看吧![www.12360.co]
回复

使用道具 举报

0

主题

15

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
发表于 2020-1-19 03:07:37 | 显示全部楼层
楼主,大恩不言谢了![www.12360.co]
回复

使用道具 举报

0

主题

19

帖子

409

积分

中级会员

Rank: 3Rank: 3

积分
409
发表于 2020-1-22 03:54:39 | 显示全部楼层
楼主发贴辛苦了,谢谢楼主分享![www.12360.co]
回复

使用道具 举报

0

主题

15

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
发表于 2020-1-23 18:14:44 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U![www.12360.co]
回复

使用道具 举报

0

主题

8

帖子

178

积分

注册会员

Rank: 2

积分
178
发表于 2020-1-25 04:37:56 | 显示全部楼层
这东西我收了!谢谢楼主![www.12360.co]
回复

使用道具 举报

0

主题

11

帖子

241

积分

中级会员

Rank: 3Rank: 3

积分
241
发表于 2020-2-8 21:25:12 | 显示全部楼层
感谢楼主的无私分享![www.12360.co]
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12360技术网

GMT+8, 2020-2-18 05:26 , Processed in 0.127069 second(s), 42 queries .

本网站内容收集于互联网,Www.12360.Co不承担任何由于内容的合法性及健康性所引起的争议和法律责任。 欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。

© 2019-2020 Www.12360.Co

快速回复 返回顶部 返回列表