zoukankan      html  css  js  c++  java
  • Devexpress控件使用一:GridControl

    1、控件及列表展示

    1)、控件

    2)、构建表格,用于列表展示

    3)、gridControl绑定数据

    4)、调用绑定:BindDataSource(InitDt());

    5)、展示列表

    2、表格的列配置

     1)、点击 Run Resigner弹出设计界面

    2)、配置后的效果

     

      

    3、列数据的格式设置

    1)、数据

    2)、时间

     

    3)、自定义

    效果

    注:数据公式查找

     

     4、gridControl属性

    Dock:none  和   Anchor:Top, Bottom, Left, Right      设置随窗体宽高变化而变化

    gridView1.IndicatorWidth = 40; //自增列宽度
    gridView1.OptionsView.ColumnAutoWidth = false; //自动调整列宽,使所有列的宽度和视图的宽度匹配
    gridView1.OptionsCustomization.AllowSort = false;//禁止用户对数据进行排序操作
    gridView1.OptionsCustomization.AllowColumnResizing = false; //禁止各列头改变列宽
    gridView1.OptionsCustomization.AllowColumnMoving = false;//各列头禁止移动
    gridView1.VertScrollVisibility = ScrollVisibility.Auto; //显示垂直滚动条
    gridView1.HorzScrollVisibility = ScrollVisibility.Auto; //显示水平滚动条
    gridView1.OptionsMenu.EnableColumnMenu = false; //禁止列头上的菜单
    gridView1.OptionsMenu.EnableFooterMenu = false; //禁止页脚上的菜单
    gridView1.OptionsMenu.EnableGroupPanelMenu = false; //禁止分组面板上的菜单
    gridView1.OptionsNavigation.UseTabKey = false; //不使用TAB/SHIFT+TAB移动焦点
    gridView1.OptionsBehavior.Editable = false;//不允许编辑
    gridView1.OptionsBehavior.ReadOnly = true;//只读

    5、属性设置

    1)、 

    //如何解决单击记录整行选中的问题
    View->OptionsBehavior->EditorShowMode 设置为:Click

    2)、 

    //焦点单元格的列
    gridview1.FocusedColumn
    
    //焦点单元格所在行的行号
    gridview1.FocusedRowHandle
    
    //焦点单元格的值
    gridview1.FocusedValue

    3)、

    //如何解决 GridControl 记录能获取而没有显示出来的问题
    gridView.populateColumns();

    4)、

    //如何让行只能选择而不能编辑(或编辑某一单元格)
    View->OptionsBehavior->EditorShowMode 设置为:Click
    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)、

    //多选
    GridControl->GridView->属性->OptinosSelecttion->MultiSelect

    9)、

    //在gridcontrol中添加checkbox复选框
    gridview->run designer->columns->选择要变成复选框的那一列->column edit->new(在这里可以选择很多类型)

     

    10)、

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

    11)、

    //设置成一次选择一行,并且不能被编辑
    this.gridView1.FocusRectStyle = DevExpress.XtraGrid.Views.Grid.DrawFocusRectStyle.RowFocus;
    this.gridView1.OptionsBehavior.Editable = false;
    this.gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;

    12)、

    //设置行号宽
    gridView1.IndicatorWidth = 30;

    13)、

    //设置列表数据居中
    gridview->run designer->columns->选择列->AppearanceCell和AppearanceHeader ->TextOptions->HAlignment属性设置为Center

    6、分组排列汇总

    分组

    1)按时间分第一组

    2)按性别分第二组

     

    效果

    3)高级设置

    将所有组展开:gridView1.ExpandAllGroups();

     4)、结果:

    5)、自定义组名   gridView1_CustomDrawGroupRow

    结果:

    注意:每一行都有一个 RowHandle属性,普通行的RowHandle从0开始

     排列设置

    汇总

    注:汇总结果显示在Footer面板中,gridControl的Footer面包默认不显示

     

    结果:

     7、行备注和行号

    备注

    1)、备注显示设置

    2)、设置备注字段

    结果

    3)使用电脑键盘控制显示与隐藏

    a、设置Form窗体的KeyPreview属性为true

    b、注册窗体的KeyUp事件

    private void Form2_KeyUp_1(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.F3)
    {
    gridView1.OptionsView.ShowPreview = !gridView1.OptionsView.ShowPreview;
    }
    }

     行号

    gridView1_CustomDrawRowIndicator事件

    行号宽:gridView1.IndicatorWidth = 30;

    private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
    {
        if (e.Info.IsRowIndicator)
        {
           e.Info.DisplayText = e.RowHandle.ToString();
        }
    }

    结果

    8、设置字体颜色

    private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e) 
    { 
                if (e.Column.FieldName == "TestResult")//设字体颜色
                {
                    Result tr = Result.Running;switch (tr)
                    {
                        case Result.Success:
                            e.Appearance.ForeColor = Color.Black;
                            break;
    
                        default:
                            e.Appearance.ForeColor = Color.Black;
                            break;
                    }
                }
    } 

    9、右键菜单

    1.在VS工具箱中的“菜单和工具栏”找到ContextMenuStrip控件,双击添加。
    2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项。至于菜单点击事件,这里就不多说了。
    3.选择gridControl(注意这里不是gridView的属性),在属性中可以找到ContextMenuStrip属性,设置成刚添加的ContextMenuStrip。
    4.是否可用设置
      

    问题:在单选时,“打开”(itemOpen)、“删除”(itemDelete)菜单项都可用,多选时“打开”不可用,“删除”可用,没有选择时“打开”、“删除”都不可用。

    这里需要用到gridView的PopupMenuShowing这个事件。也就是在菜单出现之前用户点击右键之后,来判断一下选择了几行,从而决定菜单项是否可用。


    private void gridView_PopupMenuShowing(object sender, DevExpress.XtraGrid.Views.Grid.PopupMenuShowingEventArgs e)
    {
       //获取选择的行数
       int select = gridView.SelectedRowsCount;
       itemOpen.Enabled = false;
       itemDelete.Enabled = false;
       if(select == 1)
       {
         itemOpen.Enabled = true;
         itemDelete.Enabled = true;
       }
       else if(select > 1)
       {
         itemDelete.Enabled =true;
       }
    }

    样式设置

    全部设置

    新增一条记录

    (1)、

    private void btn_add_Click(object sender, EventArgs e)
    {
       gridView1.AddNewRow();   
    }

    (2)、实现 gridView_InitNewRow 事件(对于新加行的特别的设置)

    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])); //复制最后一行的数据到新行
     }

    自定义列显示事件

  • 相关阅读:
    hdu 5446 Unknown Treasure lucas和CRT
    Hdu 5444 Elven Postman dfs
    hdu 5443 The Water Problem 线段树
    hdu 5442 Favorite Donut 后缀数组
    hdu 5441 Travel 离线带权并查集
    hdu 5438 Ponds 拓扑排序
    hdu 5437 Alisha’s Party 优先队列
    HDU 5433 Xiao Ming climbing dp
    hdu 5432 Pyramid Split 二分
    Codeforces Round #319 (Div. 1) B. Invariance of Tree 构造
  • 原文地址:https://www.cnblogs.com/1955/p/9441679.html
Copyright © 2011-2022 走看看