DevExpress GridControl 控件点滴

一、常用控件样式

public void setDgv(DevExpress.XtraGrid.Views.Grid.GridView gridView1)
        {
            gridView1.OptionsView.ShowColumnHeaders = true;       //显示列标题
            gridView1.OptionsView.ShowIndicator = false;          // 不显示行标题
            gridView1.OptionsView.ShowGroupPanel = true;          // 显示分组panel
            gridView1.OptionsCustomization.AllowGroup = true;     //是否允许分组
            gridView1.OptionsView.ShowGroupedColumns = true;     //显示分组的列
            gridView1.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;   //是否显示过滤面板
            gridView1.OptionsCustomization.AllowFilter = true;                      //是否允许过滤

            gridView1.OptionsCustomization.AllowColumnMoving = true;                //是否允许移动列
            gridView1.OptionsCustomization.AllowColumnResizing = false;              //是否允许调整列宽
            gridView1.OptionsCustomization.AllowSort = true;                          //是否允许排序
            gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;           //是否允许选中单元格
            gridView1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Click;
            gridView1.OptionsBehavior.Editable = false;                               //是否允许用户编辑单元格
            gridView1.OptionsView.EnableAppearanceEvenRow = true;                    //是否启用偶数行外观
            gridView1.OptionsView.EnableAppearanceOddRow = true;                     //是否启用奇数行外观
            gridView1.OptionsMenu.EnableColumnMenu = false;                          //禁用列标题右键菜单

            // gridView1.ClearSorting();//禁止排序
            gridView1.PaintStyleName = "Flat";   //设置外观样式
            DevExpress.XtraGrid.Views.Grid.GridViewAppearances Appearance1 = new DevExpress.XtraGrid.Views.Grid.GridViewAppearances(gridView1);

            //列标题颜色:System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(232)))), ((int)(((byte)(243)))));
            //奇数行
            Appearance1.EvenRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(249)))), ((int)(((byte)(254)))));
            Appearance1.EvenRow.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            //偶数行
            Appearance1.OddRow.BackColor = System.Drawing.Color.White;
            Appearance1.OddRow.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            //选中行
            Appearance1.FocusedRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(254)))), ((int)(((byte)(211)))), ((int)(((byte)(128)))));
            Appearance1.FocusedRow.ForeColor = System.Drawing.Color.Black;
            //分组panel颜色
            Appearance1.GroupPanel.BackColor = System.Drawing.Color.White;
            Appearance1.GroupPanel.BackColor2 = System.Drawing.Color.CornflowerBlue;
            //分组row颜色
            Appearance1.GroupRow.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(232)))), ((int)(((byte)(243)))));
            Appearance1.GroupRow.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(198)))), ((int)(((byte)(232)))), ((int)(((byte)(243)))));
            //空白区域颜色
            Appearance1.Empty.BackColor = System.Drawing.Color.LightYellow;
            //列标题颜色
            Appearance1.HeaderPanel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(210)))), ((int)(((byte)(229)))), ((int)(((byte)(249)))));
            //奇数行
            gridView1.Appearance.EvenRow.BackColor = Appearance1.EvenRow.BackColor;
            gridView1.Appearance.EvenRow.Font = Appearance1.EvenRow.Font;
            //偶数行
            gridView1.Appearance.OddRow.BackColor = Appearance1.OddRow.BackColor;
            gridView1.Appearance.OddRow.Font = Appearance1.OddRow.Font;
            //选中行
            gridView1.Appearance.FocusedRow.BackColor = Appearance1.FocusedRow.BackColor;   //选中的行
            gridView1.Appearance.FocusedCell.BackColor = Appearance1.FocusedRow.BackColor;  //选中的单元格
            gridView1.Appearance.FocusedRow.ForeColor = Appearance1.FocusedRow.ForeColor;   //字体颜色
            gridView1.Appearance.GroupPanel.BackColor = Appearance1.GroupPanel.BackColor;
            gridView1.Appearance.GroupPanel.BackColor2 = Appearance1.GroupPanel.BackColor2;
            //分组row颜色
            gridView1.Appearance.GroupRow.BackColor = Appearance1.GroupRow.BackColor;
            //  gridView1.Appearance.GroupRow.BackColor2 = Appearance1.GroupRow.BackColor2;
            //空白区域颜色
            gridView1.Appearance.Empty.BackColor = Appearance1.Empty.BackColor;
            //列标题颜色
            gridView1.Appearance.HeaderPanel.BackColor = Appearance1.HeaderPanel.BackColor;
            //设置分组
            gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "分组1");  //添加分组1,如果不是count,则名称必须与字段名对应
            gridView1.GroupFormat = "{1} {2}";  //默认"{0}: [#image]{1} {2}"; 字段名称:数据 计数=?
            gridView1.Columns["部门名称"].GroupIndex = 0;  //设置默认分组列
        }

二、设置分组显示格式

gridView1.GroupFormat = "{0}: [#image]{1} {2}"; //"字段名:图标 字段值";
gridView1.GroupFormat = "{1} {2}";              //"字段值";

三、统计汇总字段

       gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "分组1");  //添加分组1,如果不是count,则名称必须与字段名对应
        gridView1.GroupFormat = "{1} {2}";  //默认"{0}: [#image]{1} {2}"; 字段名称:数据 计数=?
        gridView1.Columns["FieldName1"].GroupIndex = 0;  //设置默认分组列

        //分组列格式
        gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Average, "id", gridView1.Columns["id"]);
        gridView1.GroupSummary[1].DisplayFormat = "AVG={0:c}";

        gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Count, "姓名", gridView1.Columns["姓名"]);
        ((DevExpress.XtraGrid.GridSummaryItem)gridView1.GroupSummary[gridView1.GroupSummary.Count - 1]).DisplayFormat = "小计:{0:N0}";
        //展开
        gridView1.ExpandAllGroups();

四、对列的操作

        //设某一列只读或者不可编辑
         gridView1.Columns[0].OptionsColumn.AllowEdit = false;
         gridView1.Columns[0].OptionsColumn.ReadOnly = false;   

         //设某一列文字和标题局中显示
         gridView1.Columns[0].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
         gridView1.Columns[0].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;   

         //去掉某一列上面的自动筛选功能(Filter)
         gridView1.Columns[0].OptionsFilter.AllowAutoFilter = false;
         gridView1.Columns[0].OptionsFilter.AllowFilter = false;
         gridView1.Columns[0].OptionsFilter.ImmediateUpdateAutoFilter = false;   

         //设置冻结列(左冻结)
         gridView1.Columns[0].Fixed= DevExpress.XtraGrid.Columns.FixedStyle.Left;   

         //得到单元格数据(0行0列)
         string ss = gridView1.GetRowCellDisplayText(0, gridView1.Columns[0]);
         string ss = gridView1.GetRowCellValue(0, gridView1.Columns[0]);
         //设置单元格数据(将0行0列的单元格赋值123)
         gridView1.SetRowCellValue(0, gridView1.Columns[0], "123");   

         //手动添加dev的列
         DevExpress.XtraGrid.Columns.GridColumn Col1 = new DevExpress.XtraGrid.Columns.GridColumn();
         Col1.FieldName="FID";
         Col1.Visible=true;
         Col1.VisibleIndex=gridView1.Columns.Count;
         gridView1.Columns.Add(Col1);

五、一些常用事件

//设置自动增加的行号,需要先添加给gridview添加事件CustomDrawRowIndicator
        private void gridview_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
                e.Info.DisplayText = (e.RowHandle + 1).ToString();
        }

        //删除: (修改了dgvdel里的datagridviewdel方法)
        public static void datagridviewdel_Dev(DevExpress.XtraGrid.Views.Grid.GridView Mydgv)
        {
            if (MessageBox.Show("你确定要删除选中的记录吗?", "删除提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2, 0, false) == DialogResult.Yes)
            {
                int iSelectRowCount = Mydgv.SelectedRowsCount;
                if (iSelectRowCount > 0)
                {
                    Mydgv.DeleteSelectedRows();
                }
            }
        }
        //新增:
        private void btn_add_Click(object sender, EventArgs e)
        {
            gridView1.AddNewRow();
        }
        //新增行初始值设置:
        private void gridView1_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
        {
            ColumnView View = sender as ColumnView;
            View.SetRowCellValue(e.RowHandle, View.Columns[0], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[0])); //复制最后一行的数据到新行
            View.SetRowCellValue(e.RowHandle, View.Columns[1], gridView1.GetRowCellValue(gridView1.GetRowHandle(gridView1.RowCount - 2), gridView1.Columns[1])); //复制最后一行的数据到新行
        }
        //保存 datagridviewsave

时间: 2024-10-28 10:57:37

DevExpress GridControl 控件点滴的相关文章

设置DevExpress GridControl控件时间列显示时、分、秒样式

如题,如果Dev GridControl控件绑定DataTable数据源时,DataTable中的某一列为Date类型时,GridControl默认显示样式只显示当前日期,并不会将时.分.秒显示出来.如图: 解决方案: 设置显示样式,如图: 设置完成,显示结果展示,如图:

关于DevExpress GridControl控件中新增复选按钮一事

关于DevExpress GridControl新增复选按钮的事情,查了一下网上的文档,发现都是在查询的数据集[table]中新增一列供checkbox绑定使用.偶尔的一瞬间,我在DevExpress 的Demo上发现有使用CheckBox的例子,找了半天Demo的代码,还是没找到.然后就找到了设置的属性. 晚上的时候,想了想,感觉能试出来简直是运气.如下配置即可: 设置GridView中的[OptionsSelection]->[MultiSelectMode]设置为CheckBoxRowSe

DevExpress的GridControl控件更新數據問題解決辦法

開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據.今天在開發時遇到一種情況,當通過GridControl中Row上Button[Command]改變行內數據,也就是binding的Detail數據已改變,這時NotifyPropertyChanged有觸發,但改變的行數據不會同步更新到UI上,目前測試有兩種方式進行解決. 1.直接new 一個新的行

devexpress表格控件gridcontrol图片列,按钮列,时间列等特殊列的实现

1.项目中经常会在表格中插入按钮列,图片列,表格列一些非文本的特殊列.如何在devexpress表格控件gridcontrol中实现呢?以下列举一个实现添加图片列,按钮列,时间列,按钮列,开关列的示例,效果图如下: 2.数据代码,其中图片列使用了两种方法,大家可根据自己要求变跟. Image img = Image.FromFile(Application.StartupPath+"\\img\\11111.png");//方法1 //byte[] imgbyte=getImageBy

DevExpress控件的GridControl控件小结

XtraGrid 的关键类就是:GridControl和GridView.GridControl本身不显示数据,数据都是显示在GridView/CardView /XXXXView中.GridControl是各种View的容器.所以要控制显示,要从GridView这些类入手. 1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.OptionsView.C

Devexpress使用之:GridControl控件

Devexpress系列控件功能很强大,使用起来也不太容易,我也是边摸索边使用,如果有时间我会把常用控件的使用方法整理出来的. using System; using System.Collections.Generic; using System.ComponentModel; using System.Windows.Forms; using DevExpress.XtraGrid.Columns; using DevExpress.XtraGrid.Views.Base; using De

DevExpress Grid控件经典常用功能代码收集

随着DevExpress 控件包越来越多的被中国用户使用,由于是英文版本,看英文版使用说明非常困难,慧都控件网在DevExpress 控件包使用方面有多年的研究,慧都控件网会不断的把DevExpress 使用经验分享给大家.»更多DevExpress开发资源与帮助文档 下面是我们平时收集最常用的DevExpress Winform 4个代码片段,比较常用,希望对广大DEV用户有帮助. 一 .GridControl的删除操作 private void rILinkEditInfoDel_Click

Dev的GridControl控件选择框的使用

先介绍环境:VS2010,dev11.2 想要达到的效果:,当单击某一行时前面的选择框选中. 在网上找了不少,但是感觉跟我想的做法很不一样(有很多都是再另外添加一个什么CheckBox,这个我在Dev里是没有找到) 下面介绍我的做法: 首先:GridControl控件要设置为不可编辑状态,在“OptionsBehavior”下将“Editable”的值改为false,否则左键单击不管用. 第一步: 进入“Run Designer”添加三列,主要讲述一下第一列“判断列”的属性设置,这用了Dev的自

GridControl控件的数据显示的样式控制

如上两图所示,Dev列表控件GridControl默认的格式并没有渐变变色效果,显示的日期数据,也是“yyyy-MM-dd”的格式,而非“yyyy-MM-dd HH:mm:ss”即使对于后面有长格式的日期数据也一样.下面分别对这两种情况进行说明. 如上两图所示,我们有时候需要控制列表访问过的颜色变化,或者是时间显示格式等内容,这个时候设置GridView的RowCellStyle即可实现,如下所示. this.gridView1.RowCellStyle += new DevExpress.Xt