ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C# DevExpress GridControl下动态创建列的方法

2022-02-28 17:02:18  阅读:374  来源: 互联网

标签:控件 Repository C# DevExpress Add XtraEditors new GridControl


这里是把在表格中创建控件的方法封装成一个类,然后在创建列的时候实例化“创建控件”的方法

1.在列中使用一些按钮

  1 using Common;
  2 using DevExpress.XtraEditors;
  3 using DevExpress.XtraEditors.Controls;
  4 using DevExpress.XtraEditors.Repository;
  5 using DevExpress.XtraGrid;
  6 using DevExpress.XtraGrid.Views.Grid;
  7 using GyMxErpCs;
  8 using System;
  9 using System.Collections.Generic;
 10 using System.Linq;
 11 using System.Text;
 12 using System.Threading.Tasks;
 13 using System.Windows.Forms;
 14 
 15 namespace Semo
 16 {
 17     public class SheetControl
 18     {
 19         /// <summary>
 20         /// 日期格式控件
 21         /// </summary>
 22         public DevExpress.XtraEditors.Repository.RepositoryItemTextEdit dateTextFormat;
 23         /// <summary>
 24         /// 删除、修改(查看)按钮
 25         /// </summary>
 26         public DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit checkButton;
 27         /// <summary>
 28         /// 超链接控件
 29         /// </summary>
 30         public DevExpress.XtraEditors.Repository.RepositoryItemHyperLinkEdit hyperlinks;
 31         /// <summary>
 32         /// 删除控件(用于明细)
 33         /// </summary>
 34         public DevExpress.XtraEditors.Repository.RepositoryItemButtonEdit deleteButton;
 35         /// <summary>
 36         /// int类型格式控件
 37         /// </summary>
 38         public DevExpress.XtraEditors.Repository.RepositoryItemTextEdit intTextFormat;
 39         /// <summary>
 40         /// 检索控件
 41         /// </summary>
 42         public DevExpress.XtraEditors.Repository.RepositoryItemTextEdit searchText;
 43         /// <summary>
 44         /// 复选框
 45         /// </summary>
 46         public DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit checkbox;
 47 
 48         /// <summary>
 49         /// 下拉控件
 50         /// </summary>
 51         public DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit lookUpEdit;
 52         /// <summary>
 53         /// 文本显示控件
 54         /// </summary>
 55         public DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit memoEdit;
 56         private string strMenuPowerAuth = string.Empty;
 57         private GridControl gridControl;
 58         private object obj;
 59         /// <summary>
 60         /// 
 61         /// </summary>
 62         /// <param name="gridControl">GridControl控件名称</param>
 63         public SheetControl(GridControl gridControl)
 64         {
 65             this.gridControl = gridControl;
 66             InitControl();
 67         }
 68         private void InitControl()
 69         {
 70             #region 日期格式控件
 71             dateTextFormat = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
 72             dateTextFormat.AutoHeight = false;
 73             dateTextFormat.Mask.EditMask = "yyyy-MM-dd";
 74             dateTextFormat.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime;
 75             dateTextFormat.Mask.UseMaskAsDisplayFormat = true;
 76             dateTextFormat.Name = "dateTextFormat";
 77             #endregion
 78 
 79             #region 删除、查看(修改)
 80             Dictionary<object, string> checkButtons = new Dictionary<object, string>();
 81             if (strMenuPowerAuth.Equals("ck"))
 82             {
 83                 checkButtons.Add("download", "查看");
 84             }
 85             else if (strMenuPowerAuth.Equals("edit"))
 86             {
 87                 checkButtons.Add("download", "修改");
 88                 checkButtons.Add("delete", "删除");
 89             }
 90             checkButton = CreateRepositoryItemButtonEdit(checkButtons);
 91             gridControl.RepositoryItems.Add(checkButton);
 92             #endregion
 93 
 94             #region 明细删除
 95             Dictionary<object, string> delButtons = new Dictionary<object, string>();
 96             delButtons.Add("deletes", "删除");
 97             deleteButton = CreateRepositoryItemButtonEdit(delButtons, 1);
 98             gridControl.RepositoryItems.Add(deleteButton);
 99             #endregion
100 
101             #region 超链接按钮
102             hyperlinks = new DevExpress.XtraEditors.Repository.RepositoryItemHyperLinkEdit();
103             hyperlinks.AutoHeight = false;
104             hyperlinks.Name = "hyperlinks";
105             #endregion
106 
107             #region 检索控件
108             searchText = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
109             searchText.AutoHeight = false;
110             searchText.Name = "searchText";
111             //searchTextEdit.KeyDown += new System.Windows.Forms.KeyEventHandler(this.searchTextEdit_KeyDown);
112             #endregion
113 
114             #region Int格式化控件
115             intTextFormat = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit();
116             intTextFormat.AutoHeight = false;
117             intTextFormat.Mask.EditMask = "n2";
118             intTextFormat.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric;
119             intTextFormat.Mask.UseMaskAsDisplayFormat = true;
120             intTextFormat.Name = "intTextFormat";
121             #endregion
122 
123             #region 复选框
124             checkbox = new RepositoryItemCheckEdit();
125             #endregion
126 
127             #region 下拉格式控件
128             lookUpEdit = new DevExpress.XtraEditors.Repository.RepositoryItemLookUpEdit();
129             lookUpEdit.AutoHeight = false;
130             //lookUpEdit.Buttons.AddRange(new DevExpress.XtraEditors.Controls.EditorButton[] {
131             //new DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)});
132             lookUpEdit.Columns.AddRange(new DevExpress.XtraEditors.Controls.LookUpColumnInfo[] {
133             new DevExpress.XtraEditors.Controls.LookUpColumnInfo("value", "value")});
134             lookUpEdit.Name = "lookUpEdit";
135             lookUpEdit.NullText = "";
136             lookUpEdit.ShowHeader = false;
137             #endregion
138 
139             #region 文本显示控件
140             memoEdit = new DevExpress.XtraEditors.Repository.RepositoryItemMemoEdit();
141             memoEdit.AutoHeight = false;
142             memoEdit.Name = "memoEdit";
143             #endregion
144         }
145         //使用图标
146         //System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmPoductionAddt));
147         //创建按钮
148         private RepositoryItemButtonEdit CreateRepositoryItemButtonEdit(Dictionary<object, string> dicButtons, int ifImage = 0)
149         {
150             RepositoryItemButtonEdit repositoryBtn = new RepositoryItemButtonEdit();
151             repositoryBtn.AutoHeight = false;
152             repositoryBtn.TextEditStyle = TextEditStyles.HideTextEditor;
153             repositoryBtn.ButtonsStyle = BorderStyles.NoBorder;
154             repositoryBtn.Buttons.Clear();
155             EditorButton btn = null;
156             foreach (KeyValuePair<object, string> item in dicButtons)
157             {
158                 btn = new EditorButton();
159                 if (ifImage == 1)
160                 {
161                     btn.Image = ((System.Drawing.Image)(resources.GetObject("repositoryBtn.Buttons")));
162                     btn.ImageLocation = ImageLocation.Default;
163                 }
164                 btn.Kind = ButtonPredefines.Glyph;
165                 btn.Caption = item.Value;
166                 btn.Tag = item.Key;
167                 repositoryBtn.Buttons.Add(btn);
168             }
169             return repositoryBtn;
170         }
171     }
172 }
表格创建中控件

2.创建添加DataTable数据源

 1  //添加表
 2         private void CreateData()
 3         {
 4             //新建一个dt对象
 5             DataTable dt = new DataTable();
 6             dt.Columns.Add("retrieve", Type.GetType("System.String"));//检索
 7             dt.Columns.Add("coding", Type.GetType("System.String"));//编码
 8             dt.Columns.Add("name", Type.GetType("System.String"));//名称
 9             dt.Columns.Add("quantity", Type.GetType("System.Double"));//数量
10             dt.Columns.Add("id", Type.GetType("System.String"));//数量
11             CreateList();//创建列
12             this.gridData.DataSource = dt;
13         }
创建DataTable

3.创建列

 1    //创建列
 2         private void CreateList()
 3         {
 4             SheetControl = new SheetControl(this.gridData);
 5             #region 初始化表头
 6             GridColumn retrieve = new GridColumn();
 7             retrieve.Caption = "操作";
 8             retrieve.FieldName = "retrieve";
 9             retrieve.VisibleIndex = 0;
10             retrieve.ColumnEdit = tableControl.deleteButton;
11             retrieve.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] {
12             new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Average, "retrieve", "合计")});
13             this.gridView1.Columns.Add(retrieve);
14 
15             GridColumn coding = new GridColumn();
16             coding.Caption = "编码";
17             coding.FieldName = "coding";
18             coding.Width = 70;
19             coding.VisibleIndex = 30;
20             coding.ColumnEdit = tableControl.searchText;
21             this.gridView1.Columns.Add(coding);
22 
23             GridColumn name = new GridColumn();
24             name.Caption = "名称";
25             name.FieldName = "name";
26             name.Width = 120;
27             name.VisibleIndex = 32;
28             name.OptionsColumn.AllowEdit = false;
29             name.ColumnEdit = tableControl.memoEdit;
30             name.AppearanceCell.Options.UseTextOptions = true;//自动换行
31             name.AppearanceCell.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;//自动换行
32             this.gridView1.Columns.Add(name);
33 
34             GridColumn id = new GridColumn();
35             id.FieldName = "id";
36             id.Visible = false;
37             this.gridView1.Columns.Add(id);
38             #endregion
39         }
创建列

 

标签:控件,Repository,C#,DevExpress,Add,XtraEditors,new,GridControl
来源: https://www.cnblogs.com/strive-boy/p/15927140.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有