• DevExpress表格GridControl控件属性设置总结


    首先介绍一下XtraGrid,XtraGrid有两个关键类:GridControl和GridView。GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXView中。GridControl是各种View的容器。所以要控制显示,要从GridView这些类入手。

    先来一些教程:

    1、DevExpress使用教程:XtraGrid常见用法,主要介绍了XtraGrid的数据绑定与数据分析功能,如统计、排序、分页等。

    2、DevExpress使用教程:Gridview下拉框,主要介绍了下拉框的使用。

    3、DevExpress使用教程:添加非绑定列,主要介绍了如何添加非绑定列。

    4、DevExpress使用教程:向GridControl添加进度条控件

    5、DevExpress使用教程:XtraGridControl动态添加右键菜单

    上面几个教程基本可以让你对XtraGrid的用法有一个比较系统的了解,但在实际使用时就会发现有太多的属性设置,要一一记录,下面就将我遇到的,比较有用的记录下来:
    1、去除 GridView 头上的 "Drag a column header here to group by that column"

    --> 点击 Run Designer -> 找到:OptionView -> 将 ShowGroupPanel : 设置为 false ;

    2、如何显示出 GridView 自带的搜索功能

    --> 点击 Run Designer -> 找到: OptionsFind -> 将AlwaysVisible : 设置为 True

    3、如何将GridView的大小自适应窗体的大小

    --> 右键 GridView 控件 -> 属性 -> 找到 Dock : 设置为 Fill

    4、GridControl列自动匹配宽度

    //自动调整所有字段宽度 this.gridView1.BestFitColumns(); //调整某列字段宽度 this.gridView1.Columns[n].BestFit();

    1

    2

    3

    4

    //自动调整所有字段宽度

    this.gridView1.BestFitColumns();

    //调整某列字段宽度

    this.gridView1.Columns[n].BestFit();

    5、DevExpress控件组中的GridControl控件不能使横向滚动条有效。

    现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容。再就是如果数据比较少,也会占满整个GridControl,非常不美观,此时也可用这种方法解决。

    解决:gridView1.OptionsView.ColumnAutoWidth属性是true,即各列的宽度自动调整,你把它设成false,就会出现了。

    6、让GridView 行 不可编辑

    -- > Run Designer -> OptionsBehavior -> Editable : False

    7、GridView 设置选中行的颜色

    GridView : Run Designer -> Appearences : selectRow & FocusedRow (两项都要设置)

    BackColor : MediumSlateBlue 背景色

    ForeColor : White 前景色 字体颜色

    8、设置奇、偶行交替颜色

    (1) OptionsView.EnableAppearanceEvenRow = true;OptionsView.EnableAppearanceOddRow = true;

    (2) 设置Appearance.EvenRow.BackColor和Appearance.OddRow.BackColor

    9、GridView 设置标题行颜色

    GridView : Run Designer -> Appearences : HeadPanel 在这个属性组中都是关于标题行的设置,再次不做诠释.

    当设置完HeadPanel 其实并没有结束,是不显示效果的, 还需要设置 GridControl 属性中 LookAndFeel : Style 设置为ultraFlat , UseDefaultLookAndFeel 设置为 False .

    10 、GridView 设置标题行以及内容行 数据居中

    标题行 10 所述 在HeadPanel 里有一个TextOptions 展开之后 将HAlignment : Center

    如果是将内容行数据居中.有两种方法 1 : 逐行设置 2 : 设置Appearences

    1 : GridView -> Run Designer -> Columns -> AppearanceCell -> TextOptions 找到HAlignment : Center .

    2 : GridView -> Run Designer -> Appearance -> ViewCaption -> TextOptions -> HAlignment : Center

    我在使用时设置了2并不起作用,真正起作用的是:

    GridView -> Run Designer -> Appearance -> Row -> TextOptions -> HAlignment : Center

    11、GridView添加CheckBox并支持多选操作.

    GridView : Run Designer -> OptionsSelection -> MultiSelect : True MultiSelectMode : CheckBoxRowSelect

    12、选择某行后获取当前表格数据

    this.textBox1.Text = gridView2.GetDataRow(e.RowHandle)["列名"].ToString();

    1

    this.textBox1.Text = gridView2.GetDataRow(e.RowHandle)["列名"].ToString();

    //不显示内置的导航条。
    gc1.UseEmbeddedNavigator = false;

    //不显示分组的面板
    gv1.OptionsView.ShowGroupPanel = false;
    gv2.OptionsView.ShowGroupPanel = false;

    //自动改变行高适应内容
    gv1.OptionsView.RowAutoHeight = true;
    gv2.OptionsView.RowAutoHeight = true;

    //允许自动合并单元格
    gv1.OptionsView.AllowCellMerge = true;

    //指定某个列的合并单元格

    gv1.OptionsView.AllowCellMerge = true;

    gv1.Columns[""].AllowMerge = true;

    //如果主从表中,没有找到从表内容也要显示(默认是不显示的)
    gv1.OptionsDetail.AllowExpandEmptyDetails = true;

    //显示自动筛选行(效果跟Excel的自动筛选差不多)
    gv2.OptionsView.ShowAutoFilterRow = true;

    //使得GridView不能编辑
    gv1.OptionsBehavior.Editable = false;
    gv2.OptionsBehavior.Editable = false;

    //内置编辑器显示的模式
    gv1.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Click;

    //主从表显示的功能是否可用
    //gv1.OptionsDetail.EnableMasterViewMode = false;

    //如果显示了主从表,每点开个加号,就会显示一个Tabs,里面往往显示了两个面板。
    //事实上没必要这样干的。一般选择关闭。关闭的对象是主GridView的此项属性。
    gv1.OptionsDetail.ShowDetailTabs = false;

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

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

    2、 如何新增一条记录

    (1)、gridView.AddNewRow()

    (2)、实现 gridView_InitNewRow 事件

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

    gridView.populateColumns();

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

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

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

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

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

    6、如何隐藏 GridControl 的 GroupPanel 表头

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

    7、如何禁用 GridControl 中列头的过滤器 过滤器如下图所示:

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

    8、如何在查询得到 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); } } }

    9、如何显示水平滚动条?或

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

    .....列表宽度自适应内容

    gridview1.BestFitColumns();

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

    设置 this.gridView.MoveFirst()

    11、如何定位到下一条数据/记录?
    设置 this.gridView.MoveNext()

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

    设置 this.gridView.MoveLast()
    ————————————————
    版权声明:本文为CSDN博主「qq_23944441」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_23944441/article/details/82415812

    怀仁怀朴,唯真唯实。
  • 相关阅读:
    nodejs历史版本下载
    dotnetcore & docker
    Openlayers 提供的 API 读取、解析和展示 GeoJSON 描述的信息
    vue父组件和子组件的生命周期到底谁先执行?
    openlayers鼠标移动获取地图经纬度格式化的两种方式
    修改IE不兼容MAP()的问题,自定义实现JavaScript的Map对象
    惠普zhan66解决连接上网线WiFi无法打开的问题。
    Git 分支管理
    Object.entries()
    vue中 .env .env.development .env.production 详细说明
  • 原文地址:https://www.cnblogs.com/hushzhang/p/14975172.html
Copyright © 2020-2023  润新知