GridControl 控件

this.gridView1.Appearance属性可以获取行对象??this.gridView1.Appearance.OddRow.BackColor = Color.White; 可设置背景色?

一、GridControl

  1. 设置GridView的样式(滚动条大小也会随着变化)

gridControl.LookAndFeel.UseDefaultLookAndFeel = false;

gridControl.LookAndFeel.SkinName = “Office 2010 Blue”; //可选项:DevExpress Style,VS2010,Seven Classic,Office 2010 Blue,Office 2010 Blue,Office 2010 Black,Office 2010 Silver,Office 2013

  1. 设置GridView下面显示导航和分页 gridControl.UseEmbededNavigator=True; 就有导航和编辑按钮了。

二、GridView

注意:设置第12项后,整个gridView单元格都为只读,然后:1、可以添加MouseDown事件;2:gridView可以使用鼠标滚动轮

1、属性

  1. 设置是否显示自动过滤行,设置属性 this.gridView1.OptionsView.ShowAutoFilterRow = true;

  2. 设置是否自动列宽,设置属性 this.gridView1.OptionsView.ColumnAutoWidth = false;

  3. 允许单元格合并,设置属性 this.gridView1.OptionsView.ShowAutoFilterRow = true;

  4. 显示页脚,设置属性 this.gridView1.OptionsView.ShowFooter = true;

  5. 设置是否显示表头分组框,设置属性 this.gridView1.OptionsView.ShowGroupPanel = false; 默认true

  6. 显示指示器(第一列),设置属性 this.gridView1.OptionsView.ShowIndicator = false; 默认true

  7. 显示最上端表格名称,设置属性 this.gridView1.OptionsView.ShowViewCaption = true;

  8. 设置可添加新行的上/下位置或者不显示 this.gridView1.OptionsView.NewItemRowPosition = NewItemRowPosition.Bottom;

  9. 表头文本设置 gridView.GroupPanelText = “表头文本”;

  10. 设置是否可编辑,设置属性 this.gridView1.OptionsBehavior.Editable = false; //鼠标的滚动轮滚动时gridView的滚动条也跟着滚动,需要设置

  11. Editable还可以设置gruidView单元格不可编辑 this.gridView1.OptionsBehavior.Editable = false;

  12. 设置是否显示过滤器(默认显示),设置属性 this.grid,设置属性.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;

  13. 设置每一列不能排序 gridView1.OptionsCustomization.AllowSort = false;

  14. 获取光标列字段名 gridView1.FocusedColumn.FieldName;

  15. 获取光标行句柄 gridView1.FocusedRowHandle; //如果为多选时,光标行也只会有一行。

  16. 设置第一列(序号列)宽度 gridView1.IndicatorWidth = 40;

  17. 设置最上端中间显示表格名称的字体大小和颜色 this.gridView1.ViewCaption = “表格名称”; //默认为"",如果为子明细,默认与父GridView.ViewCaption一致。

gridView1.Appearance.ViewCaption.Options.UseFont = true;

gridView1.Appearance.ViewCaption.Font = new System.Drawing.Font(“Tahoma”, 10F);

gridView1.Appearance.ViewCaption.Options.UseForeColor = true;

gridView1.Appearance.ViewCaption.ForeColor = System.Drawing.Color.Coral;

  1. 获取gridView中的行数 this.gridView1.RowCount; 或者 this.gridView1.DataRowCount;

  2. 设置是否只读,设置属性 this.gridView1.OptionsBehavior.ReadOnly = true;

21)设置是否可以多选,默认为false。this.gridView1.OptionsSelection.MultiSelect = true | false;

22)设置导出Excel自动列宽,设置this.gridView1.OptionPrint.AutoWidth = false;

23)设置自动行高(若某列文本项需要自动换行时,需在列上设置RepositoryItemMemoEdit),设置 this.OptionsView.RowAutoHeight = true;

24)设置是否显示底部(汇总栏),设置:gridView1.ShowFooter = true; //默认为false

25)获取查找面板是否显示:gridView1.IsFindPanelVisible;

26)设置自定义(列选择)窗体显示相关属性:gridView1.CustomizationFormBounds;

27)设置垂直滚动条位置:gridView1.TopRowIndex = 3;

28)设置水平滚动条位置:gridView1.LeftCoord = 3;

29)设置 GridView 列头居中显示(v14.2):

1. 设置某一列:gridView1.Columns["ColumnName"].AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

2. 设置所有列:gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

30)设置 GridView 内容居左显示(v14.2):gridView1.Columns[“SerialId”].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Near;

2、方法

  1. 添加新行方法 gridView1.AddNewRow();

  2. 根据绑定的数据源 自动产生列/绑定数据源

    DataTable dt = LinqToDataTable.ToDataTable(true, new List() { new ProSubPreTreatL() });

    dt.Rows.RemoveAt(0);

    gridView1.PopulateColumns(dt);

    gridControl1.DataSource = dt;

  3. 数据源绑定datatable,添加一行后可以获得dataRow gridView.GetFocusedDataRow();

  4. 获取单元格的值方式1 this.gridView1.GetFocusedRowCellValue(“Hall9VNs”).ToString();

  5. 获取单元格的值方式2 this.gridView1.GetRowCellValue(e.RowHandle, “FieldName”).ToString();

  6. 获取单元格的值方式3 this.gridView1.GetRowCellValue(this.gridView1.FocusedRowHandle, “FieldName”).ToString();

  7. 刷新所绑定的数据源 this.gridView1.RefreshData();

  8. 检查gridView中数据是否有错误(数据是否有效) this.gridView1.ValidateEditor(); //有效返回true,否则false

  9. 向gridView添加过滤条件

StringBuilder filterString = new StringBuilder(“[SerialID] = ‘1’ OR [SerialID] = ‘2’”); //过滤字符串

ViewColumnFilterInfo viewFilterInfo = new ViewColumnFilterInfo(gridView1.Columns[“SerialID”], new ColumnFilterInfo(filterString.ToString()));

gridView1.ActiveFilter.Clear(); //清除所有过滤条件

gridView1.ActiveFilter.Add(viewFilterInfo); //添加过滤条件

示例1 (模糊过滤QCMark字段)(建议使用这种方式添加过滤条件,这样就可以单独为每个字段添加过滤条件)

gridView1.Columns[“QCMark”].FilterInfo = new ColumnFilterInfo(“[QCMark] LIKE ‘F%’”);

this.gridView1.Columns[“QCMark”].ClearFilter(); //清除QCMark字段的过滤条件

10)保存排版和获取排版方法:SaveLayoutToXml()、RestoreLayoutFromXml()。

示例2 (过滤QCMark某个字段为DBnull.Value的数据行

ViewColumnFilterInfo viewFilterInfo = new ViewColumnFilterInfo(gridView1.Columns[“QCMark”], new ColumnFilterInfo(bandedGridView1.Columns[“QCMark”], DBNull.Value));

示例3 (过滤QCMark字段为DBnull.Value 或者 为’'的数据行

ViewColumnFilterInfo viewFilterInfo = new ViewColumnFilterInfo(gridView1.Columns[“QCMark”], new ColumnFilterInfo(“[QCMark] Is Null OR [QCMark] = ‘’”));

示例3 (过滤QCMark字段不等于A并且不等于A/S的数据行

ViewColumnFilterInfo viewFilterInfo = new ViewColumnFilterInfo(gridView1.Columns[“QCMark”], new ColumnFilterInfo(“[QCMark] <> ‘A’ AND [QCMark] <> ‘A/S’”));

添加过滤对象

gridView1.ActiveFilter.Add(viewFilterInfo); //添加过滤条件

示例4 (将精确过滤改为模糊过滤) gridView1.ActiveFilterString = gridView1.ActiveFilterString.Replace(“StartsWith”, “Contains”);

3、事件

  1. 单元值改变之前 CellValueChanging(object sender, CellValueChangedEventArgs e),手动输入会触发,时机点为值改变时,此时DataTable.Rows[0][“Name”]为原值,e.Value为新值。使用gridView.SetRowCellValue()方法不会触发。DataTable.Rows[0][“Name”] = "张三"也不会触发。

  2. 单元值改变之后 CellValueChanged(object sender, CellValueChangedEventArgs e),手动输入会触发,时机点为光标单元格光标失去时,此时DataTable.Rows[0][“Name”]为新值,e.Value为新值。使用gridView.SetRowCellValue()方法会触发。DataTable.Rows[0][“Name”] = "张三"也不会触发。

  3. 单元格单击事件 RowClick (如果需要每个单元格都触发事件,需要设置this.gridView1.OptionsBehavior.Editable = false;)

  4. 鼠标按下事件,只要鼠标在GridView范围内按下就会触发此事件 MouseDown (如果需要每个单元格都触发事件,需要设置this.gridView1.OptionsBehavior.Editable = false;)

  5. 行或者单元格单击事件 RowCellClick (如果需要每个单元格都触发事件,需要设置this.gridView1.OptionsBehavior.Editable = false;)

private void gridView1_MouseDown(object sender, MouseEventArgs e)

{

    DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hInfo = gridView_ListTemplate.CalcHitInfo(new Point(e.X, e.Y));

    if (e.Button == MouseButtons.Left && e.Clicks == 2)

    {

        //判断光标是否在行范围内

        if (hInfo.InRow){ }

    }

}

  1. 新增行时(不包含数据源绑定) InitNewRow(object sender, InitNewRowEventArgs e)

  2. 修改单元格事触发事件(可以用于验证)

gridView1.ValidatingEditor += new BaseContainerValidateEditorEventHandler(gridView1_ValidatingEditor);

void gridView1_ValidatingEditor(object sender, BaseContainerValidateEditorEventArgs e)

{

int value;

if (int.TryParse(Convert.ToString(bcveea.Value), out value) && value < 1 || value > 25)

{

    bcveea.ErrorText = "请输入1~25之间的数字";

    bcveea.Valid = false;

    formProSerial.IsError = true;

}

else

    formProSerial.IsError = false;

}

  1. gridView的光标行改变后(包括使用鼠标和使用键盘改变的)

gridView1.FocusedRowChanged += new DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventHandler(gridView1_FocusedRowChanged);

  1. gridView过滤行过滤单元格值改变后 this.gridView1.ColumnFilterChanged += new EventHandler(delegate(object sender, EventArgs e) { } );

9)gridView列标题右键菜单创建过滤编辑器时 this.gridView1.FilterEditorCreated;

10)过滤编辑器创建时 this.gridView1.FilterEditorCreated;

11)弹出菜单显示时 this.gridView1.PopupMenuShowing;

12)显示自定义(列选择)窗体时 this.gridView1.ShowCustomizationForm;

三、GridColumn

  1. 设置列标题文本,设置属性 DevExpress.XtraGrid.Columns.GridColumn.Caption=‘列标题’

  2. 设置列数据绑定字段名,设置属性 DevExpress.XtraGrid.Columns.GridColumn.FieldName=‘数据绑定字段名’

  3. 设置列是否只读 DevExpress.XtraGrid.Columns.GridColumn.OptionsColumn.ReadOnly = true;

  4. 设置列是否显示 DevExpress.XtraGrid.Columns.GridColumn.Visible = false;

  5. 设置列宽度 DevExpress.XtraGrid.Columns.GridColumn.Width = 100; //必须先设置 gridView.OptionsView.ColumnAutoWidth = false;

  6. 设置列头显示位置 DevExpress.XtraGrid.Columns.GridColumn.AppearanceHeader.TextOptions.HAlignment = HorzAlignment.Center;

  7. 设置单元格显示位置 DevExpress.XtraGrid.Columns.GridColumn.AppearanceCell.TextOptions.HAlignment = HorzAlignment.Near;

  8. 设置列的数据类型 DevExpress.XtraGrid.Columns.GridColumn.DisplayFormat.FormatType = FormatType.DateTime; //默认FormatType.None

  9. 绑定DataTable后,自动设置列的数据类型 DevExpress.XtraGrid.Columns.GridColumn.DisplayFormat.FormatType = FormatType.Custom;

  10. 设置列的排序模式和方式:

    设置列的排序模式(按照数组,还是字符):this.gridView1.Columns[3].SortMode = DevExpress.XtraGrid.ColumnSortMode.Default;

    设置列的排序方式:this.gridView1.Columns[3].SortOrder = DevExpress.Data.ColumnSortOrder.Descending; //默认ColumnSortOrder.None

  11. 设置某一列不允许排序 this.gridView1.Columns[3].OptionsColumn.AllowSort = DefaultBoolean.False;

  12. 设置某一列冻结(拖动左右滚动条时,此列的不会移动) this.gridView1.Columns[1].Fixed = DevExpress.XtraGrid.Columns.FixedStyle.Left; //冻结某一列

13)格式化单元格 this.gridView_ListTemplate.Columns[5].DisplayFormat.FormatString = “yyyy/MM/dd”;

14)获取或设置该列是否在该列隐藏时显示在自定义(列选择)窗体中。 gridColumn.OptionsColumn.ShowInCustomizationForm = false; //默认true

15)获取某一列的标题是否可以显示在自定义(列选择)中。gridColumn.CanShowInCustomizationForm;

四、为GridColumn列指定控件类型

  1. 指定为ButtonEdit(按钮编辑),列的ColumnEdit属性选择为RepositoryItemButtonEdit类型的实例

是否启用按钮编辑控件 repositoryItemButtonEdit1.Buttons[0].Enabled = false;

设置不显示文本框的按钮 this.repositoryItemButtonEdit1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.HideTextEditor;

  1. 指定为TextEdit(文本框),列的ColumnEdit属性选择为RepositoryItemTextEdit类型的实例

设置单元格输入数据验证 this.repositoryItemTextEdit1.Mask.EditMask = “\d{1,15}(.{1}\d{1,25})?”;

                this.repositoryItemTextEdit1.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.RegEx;
  1. 指定为DateEdit(日期控件),列的ColumnEdit属性选择为RepositoryItemDateEdit类型的实例

设置单元格选择的日期格式 this.repositoryItemDateEdit1.Mask.EditMask = “yyyy-MM-dd”;

            this.repositoryItemDateEdit1.Mask.UseMaskAsDisplayFormat = true;  //默认为false,如果不设置会参数,时间值。
  1. 指定为ComboBox(下拉框),列的ColumnEdit属性选择为RepositoryItemComboBox类型的实例

设置下拉框不可编辑 this.repositoryItemComboBox1.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;

绑定数据 this.repositoryItemComboBox1.Items.AddRange(object[]);

  1. 指定为CheckBox(复选框/单选框),列的ColumnEdit属性选择为RepositoryItemCheckEdit类型的实例

设置复选框文本 1、repositoryItemCheckEdit1.GlyphAlignment = DevExpress.Utils.HorzAlignment.Default;

       2、repositoryItemCheckEdit1.Caption = "启用";

其他记录:

(三)设置gridview只读属性options->optionsbehavior->editable为false 设置单击选中该列,而不是单元格options->optionsSelction ->EnableApperanceFocusedCell为false

(四)将gridview中某一字段设置为RepositoryItemHyperLinkEdit,要触发该链接的事件,可以在In_place Editor Repository中触发click 事件。但是,触发该事件的同时,gridview中的OptionBehavior->Editable必须设置为true。

(五)在gridview中绑定内存表,要改变焦点行某一字段的值 '根据gridview的焦点行获取内存表的行数 Dim rowGoMain As DataRow = gridview.GetDataRow(sender.FocusedRowHandle) '修改该行的值 rowGoMain(“字段名”) = “aa”

(六)对DataSet进行查询: ds.Tables[0].DefaultView.RowFilter = “查询条件”;

(七) 设置展开第一行的字表 gridview.SetMasterRowExpanded(1, True)

(八)设置gridview某一列汇总:选中该列,在SummaryItem设置相应属性即可。DisplayFormat为显示的格式,FieldName为需要汇总的字段……

(九)设置gridview单元格自动换行:在单元格中一个Memo控件,columnedit->new->MemoEdit,gridview中设置optionsview->rowautoheight=true

this.gvSchemesDescription.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;

        this.gvSchemesDescription.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.False;

        this.gvSchemesDescription.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.False;

        this.gvSchemesDescription.OptionsBehavior.AllowFixedGroups = DevExpress.Utils.DefaultBoolean.False;

        this.gvSchemesDescription.OptionsBehavior.AutoSelectAllInEditor = false;

        this.gvSchemesDescription.OptionsCustomization.AllowFilter = false;

        this.gvSchemesDescription.OptionsCustomization.AllowGroup = false;

        this.gvSchemesDescription.OptionsCustomization.AllowQuickHideColumns = false;

        this.gvSchemesDescription.OptionsFilter.AllowFilterEditor = false;

        this.gvSchemesDescription.OptionsFilter.AllowMultiSelectInCheckedFilterPopup = false;

        this.gvSchemesDescription.OptionsMenu.EnableColumnMenu = false;

        this.gvSchemesDescription.OptionsView.ShowFilterPanelMode = DevExpress.XtraGrid.Views.Base.ShowFilterPanelMode.Never;

        this.gvSchemesDescription.OptionsView.ShowGroupExpandCollapseButtons = false;

        this.gvSchemesDescription.OptionsView.ShowGroupPanel = false;
  1. 添加自动行号

this.gridView1.IndicatorWidth = 50; //设置显示行号的列宽

//添加事件

gridView1.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView2_CustomDrawRowIndicator);

//添加行号

void gridView2_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)

{

if (e.Info.IsRowIndicator && e.RowHandle >= 0)

{

    e.Info.DisplayText = (e.RowHandle + 1).ToString();

}

}

参考链接:

http://www.cnblogs.com/xiaofengfeng/archive/2013/03/13/2957440.html

http://blog.csdn.net/shuaishifu/article/details/8832883

http://www.cnblogs.com/HopeGi/archive/2012/10/17/GridControl.html

http://www.cnblogs.com/pan11jing/archive/2010/01/04/1638982.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GridControl控件是一个用于显示和编辑表格数据的控件,常用于Windows应用程序开发。要安装GridControl控件,您可以按照以下步骤进行操作: 1. 下载GridControl控件安装程序。您可以从官方网站或第三方资源中获取GridControl控件的安装程序。确保下载的程序是最新版本且与您使用的开发环境兼容。 2. 运行安装程序。双击GridControl控件的安装程序,打开安装向导。按照向导的指示一步一步地完成安装。 3. 选择安装目标。在安装向导中,您需要选择将GridControl控件安装到哪个目录下。系统默认会提供一个目录,您也可以选择其他目录进行安装。 4. 完成安装。当安装向导提示安装完成时,说明GridControl控件已经成功安装到您选择的目录下。您可以选择是否启动示例程序来测试GridControl控件的功能。 5. 配置开发环境。在使用GridControl控件之前,您需要在您使用的开发环境中进行相关配置。根据您的开发环境不同,可能需要添加GridControl控件的引用或将其包含在项目中。 6. 使用GridControl控件。经过安装和配置后,您可以在开发环境中使用GridControl控件了。在您的应用程序中,添加GridControl控件的实例,并根据您的需求进行数据绑定、编辑和显示等操作。 总而言之,安装GridControl控件需要下载安装程序并按照安装向导完成安装。然后,在开发环境中进行相关配置并使用该控件进行表格数据的显示和编辑。这样,您就能够充分利用GridControl控件的功能了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值