DevExpress使用方法GridControl总结

Posted mq0036

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevExpress使用方法GridControl总结相关的知识,希望对你有一定的参考价值。

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

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

二、如何新增一条记录

(1)、gridView.AddNewRow()

(2)、实现gridView_InitNewRow事件

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

gridView.populateColumns();

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

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

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

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

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

六、如何隐藏GridControl的GroupPanel表头

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

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

过滤器如下图所示:

技术分享图片

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

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

如图所示:

技术分享图片

方法如下:

//When no Records Are Being Displayed 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);           }      } }

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

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

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

设置 this.gridView.MoveFirst()

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

设置 this.gridView.MoveNext()

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

设置 this.gridView.MoveLast()

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

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

十四、如何显示行号?

this.gridView1.IndicatorWidth = 40; //显示行的序号 private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e) {      if (e.Info.IsRowIndicator && e.RowHandle>=0)      {           e.Info.DisplayText = (e.RowHandle + 1).ToString();      } }

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

设置gridView1.OptionsCustomization.AllowColumnMoving = false;

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

设置gridView1.OptionsCustomization.AllowSort = false;

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

设置gridView1.OptionsCustomization.AllowColumnResizing = false;

 

出处:https://www.cnblogs.com/starksoft/p/4936517.html

=======================================================================================

devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显示值、固定列不移动(附源码)

介绍一些常用的gridcontrol设置。

1、设置隔行变色。首先设置显示隔行变色,步骤:OptionsView-->EnableAppearanceEvenRow-->true和OptionsView-->EnableAppearanceOddRow-->true;然后设置奇数行和偶数行样式颜色等:Appearance-->EvenRow和Appearance-->OddRow。设计完成后,设计器出现隔行变色效果,如图:

技术分享图片

2、设置奇偶行样式时,会看到其他行样式。Appearance-->FoucsedRow就是焦点行颜色,设置后可突出显示焦点行样式,如图所示:

技术分享图片

3、设置显示值,有个两种方法。第一种可以在如图所示地方设置,列显示出来就会加上单位元;用的最多的一般是设置日期样式yyyy年MM月dd日:

技术分享图片

第二种可使用代码改变,代码如下:

        /// <summary>
        /// 改变显示值
        /// </summary>
        private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
        {
            if (e.Column.FieldName == "A3")
            {
                if (e.Value.ToString() == "1")
                    e.DisplayText = "男";
                else
                    e.DisplayText = "女";
            }
        }

4、有时表格列太多,需要拖动查看,但是又希望某些列能始终固定不移动。这个时候就可以设置该列为固定列了,属性如图所示:

技术分享图片

5、运行效果图:

技术分享图片

 附源码:http://files.cnblogs.com/files/starksoft/demo006.rar

附加内容:根据条件改变行的样式(字体颜色、背景颜色、渐变色)

技术分享图片
private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
        {
            int hand = e.RowHandle;//行号
            if(hand<0)
            {
                return;
            }
            DataRow dr = gridView1.GetDataRow(hand);
            if (dr == null)
                return;

            //int selectedHandle = gridView1.GetSelectedRows()[hand];
            if (gridView1.GetRowCellValue(hand, "CODE").ToString().Contains("5"))
            {
                e.Appearance.ForeColor = Color.Red;//字体颜色
                e.Appearance.BackColor=Color.Linen;//行背景颜色
                //e.Appearance.BackColor2 = Color.Blue;//渐变颜色
            }
        }
技术分享图片

 技术分享图片

 

 

出处:https://www.cnblogs.com/starksoft/p/4936207.html

以上是关于DevExpress使用方法GridControl总结的主要内容,如果未能解决你的问题,请参考以下文章

转关于DevExpress的gridControl的简单使用

DevExpress GridControl 按列值定位(选择)对应行

DevExpress GridControl复合表头(多行表头)设置

DevExpress GridControl使用教程:打印详解

Devexpress使用之:GridControl控件

DevExpress GridControl使用方法