DevExpress gridControl应用

2022-04-22 更新 常用的属性设置
2022-04-15 更新 动态设置当前行颜色
2021-11-10 更新 --最后更新时间

UI属性设置,时间久了可能会忘掉,今天在此记下常用的属性设置

1、在GirdView添加选择选择框,如下图



2、girdView数据填充 如下图所示


3、获取 girdControl 中 girdView中的选中数据

 int[] selectedRows = this.gridView1.GetSelectedRows();
 foreach (int index in selectedRows)
 {
      DataRow dr = this.gridView1.GetDataRow(index);
  }
 
//获取当前行 2021-07-14
DataRow dr = this.gridView1.GetDataRow(this.gridView1.FocusedRowHandle);

4、让girdControl显示行号,效果图如下

实现代码

//注册事件
private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
 {
     if (e.Info.IsRowIndicator && e.RowHandle > -1)
     {
         e.Info.DisplayText = (e.RowHandle + 1).ToString();
     }
 }
//有时候行号宽度不够 还需要设置: gridView1.IndicatorWidth = 35;


5、设置DevExpress gridControl gridView列按扭样式   2019-10-14


//设置 DevExpress gridControl gridView列的默认值    
this.repositoryItemHyperLinkEdit1.NullText = "查看"; 

//设置 DevExpress gridControl gridView列不可以编辑  
gridView1.Columns["列名"].OptionsColumn.AllowEdit = false;

6、如何解决单击记录整行选中的问题

View->OptionsBehavior->EditorShowMode 设置为:Click

7、如何新增一条记录

(1)、gridView.AddNewRow()
(2)、实现gridView_InitNewRow事件

8、如何解决GridControl记录能获取而没有显示出来的问题

gridView.populateColumns();

9、如何让行只能选择而不能编辑(或编辑某一单元格)

(1)、View->OptionsBehavior->EditorShowMode 设置为:Click
(2)、View->OptionsBehavior->Editable 设置为:false

10、如何禁用GridControl中单击列弹出右键菜单

设置Run Design->OptionsMenu->EnableColumnMenu 设置为:false

11、如何隐藏GridControl的GroupPanel表头

设置Run Design->OptionsView->ShowGroupPanel 设置为:false

12、如何禁用GridControl中列头的过滤器

设置 Run Design->OptionsCustomization->AllowFilter 设置为:false

13、如何在查询得到0条记录时显示自定义的字符提示/显示

private void gridView1_CustomDrawEmptyForeground(object sender, CustomDrawEventArgs e)
{
     //方法一(此方法为GridView设置了数据源绑定时,可用)
     ColumnView columnView = sender as ColumnView;
     BindingSource bindingSource = this.gridView1.DataSource as BindingSource;
     if(bindingSource.Count == 0)
     {
          string str = "没有查询到你所想要的数据!";
          Font f = new Font("宋体", 10, FontStyle.Bold);
          Rectangle r = new Rectangle(e.Bounds.Top + 5, e.Bounds.Left + 5, e.Bounds.Right - 5, e.Bounds.Height - 5);
          e.Graphics.DrawString(str, f, Brushes.Black, r);
     }
     //方法二(此方法为GridView没有设置数据源绑定时,使用,一般使用此种方法) 
     if (this._flag)
     {
          if (this.gridView1.RowCount == 0)
          {
               string str = "没有查询到你所想要的数据!";
               Font f = new Font("宋体", 10, FontStyle.Bold);
               Rectangle r = new Rectangle(e.Bounds.Left + 5, e.Bounds.Top + 5, e.Bounds.Width - 5, e.Bounds.Height - 5);
               e.Graphics.DrawString(str, f, Brushes.Black, r);
          }
     }
}

14、如何显示水平滚动条?

设置this.gridView.OptionsView.ColumnAutoWidth = false;

15、如何定位到第一条数据/记录?

设置 this.gridView.MoveFirst()

16、如何定位到下一条数据/记录?

设置 this.gridView.MoveNext()

17、如何定位到最后一条数据/记录?

设置 this.gridView.MoveLast()

18、设置成一次选择一行,并且不能被编辑

this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
this.gridView1.OptionsBehavior.Editable = false;
this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;

19、如何让各列头禁止移动?

设置gridView1.OptionsCustomization.AllowColumnMoving = false;

20、如何让各列头禁止排序?

设置gridView1.OptionsCustomization.AllowSort = false;

21、如何禁止各列头改变列宽?

设置gridView1.OptionsCustomization.AllowColumnResizing = false;

22、动态设置当前行颜色

public Form1()
{
    InitializeComponent();
    this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;//只选中行
    this.gridView1.OptionsSelection.EnableAppearanceFocusedRow = false;//启用选中行变色
    //this.gridView1.Appearance.FocusedRow.BackColor = System.Drawing.Color.GreenYellow;
    this.gridView1.RowStyle += new DevExpress.XtraGrid.Views.Grid.RowStyleEventHandler(this.gridView1_RowStyle);
}
private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
{
    if (e.RowHandle == this.gridView1.FocusedRowHandle)
    {
        e.Appearance.BackColor = Color.GreenYellow;
    }
}

//调用触发事件
// gridView1.FocusedRowHandle = 行号;

23、常用的属性设置

gridView1.OptionsCustomization.AllowColumnMoving = false;//如何让各列头禁止移动
gridView1.OptionsCustomization.AllowFilter = false;//不允许过滤
gridView1.OptionsCustomization.AllowSort = false;//不允许排序
gridView1.OptionsCustomization.AllowGroup = false;//不允许分组
gridView1.OptionsView.ShowGroupPanel = false;//不显示组面板
gridView1.OptionsSelection.MultiSelect = true;//可以多选
gridView1.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect;//RowSelect; //选择模式MultiSelectMode = CheckBoxRowSelect,    
gridView1.OptionsSelection.UseIndicatorForSelection = false;  //行头点击不对选择框操作                                                    
gridView1.OptionsView.ColumnAutoWidth = true;//列宽自动
gridView1.OptionsCustomization.AllowColumnResizing = false;//不允许改变列宽
gridView1.OptionsBehavior.Editable = true;//允许编辑
gridView1.OptionsView.EnableAppearanceEvenRow = true;//设置奇、偶行交替颜色
gridView1.OptionsView.EnableAppearanceOddRow = true;//设置奇、偶行交替颜色
gridView1.Appearance.EvenRow.BackColor=Color.DeepSkyBlue;
gridView1.Appearance.OddRow.BackColor = Color.CornflowerBlue;
this.gridView1.IndicatorWidth = 30;//设置显示行号的列宽