• DevExpress使用教程:GridView经验小结(官方中文文献经典资料技巧)


    下面是笔者自己总结的使用 DevExpress Gridview 的一些经验小结,分享给大家:
    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、当GridView数据源发生变化时,如何更改GridView所"绑定的值"

        Code注:其实就是重新创建了一个GridView的实例。

     gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView(gridControl1);
     gridControl1.MainView = gridView1;
     gridView1.OptionsView.ShowGroupPanel = false;
     gridView1.OptionsFind.AlwaysVisible = true;
     gridControl1.DataSource = dt;
    5、在GridControl 中添加checkbox复选框

       --> gridView -> run designer -> columns -> 添加一列(如果没有的话) 然后如图设置-- >  另外当我们需要动态绑定grid数据时,DataTable 中列的名字要和我们在gridview中设置的FileName名字要移植,不然数据是显示不出来的。

    6、让GridView 行 不可编辑

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

    7 、在GridView 行中添加Button按钮
    public void ButtonInitial()
            {
                RepositoryItemButtonEdit rib = new RepositoryItemButtonEdit();
                rib.TextEditStyle = TextEditStyles.HideTextEditor;
                rib.Buttons[0].Kind = ButtonPredefines.Glyph;
                rib.ButtonClick += rib_ButtonClick;
                rib.Buttons[0].Caption = "详细信息";
                rib.Buttons[0].Visible = true;
                gridView1.Columns["DOWNSTATE"].ColumnEdit = rib;
     
            }
     
            void rib_ButtonClick(object sender, ButtonPressedEventArgs e)
            {
                int rowindex = gridView1.FocusedRowHandle;
                DataRow row = gridView1.GetDataRow(rowindex);
            }
    8 、GirdView行添加Button按钮之后,触发事件不可用.

    将GridView Editable 设置为True 让GridView可编辑,如果不想让它可编辑的话,在一列一列的进行设置.原因是:将GridView设置为不可编辑之后,那么鼠标点击Button那一列只是选中而已,不会进行触发事件.

    9 、GridView 设置选中行的颜色

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

      BackColor :  MediumSlateBlue  背景色

     ForeColor :  White    前景色 字体颜色

    10 、GridView 设置标题行颜色

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

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

    11 、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

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

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

    13 、GridView 添加序号列

      GridView : Run Designer ->  Event  -> CustomDrawRowIndicator

    在事件中添加代码 :

    e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
                if (e.Info.IsRowIndicator)
                {
                    if (e.RowHandle >= 0)
                    {
                        e.Info.DisplayText = (e.RowHandle + 1).ToString();
                    }
                    else if (e.RowHandle < 0 && e.RowHandle > -1000)
                    {
                        e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite;
                        e.Info.DisplayText = "G" + e.RowHandle.ToString();
                    }
                }

    另外在 Run Desginer ->  IndicatorWidth  设置序号列的宽度 一般30左右就比较适合一些了.

    14 、单元格双击响应

    private void gridControl1_DoubleClick(object sender, EventArgs e)
            {
                MouseEventArgs arg = e as MouseEventArgs;
                if (arg == null)
                    return;
     
                GridHitInfo hitInfo = gridView1.CalcHitInfo(new Point(arg.X, arg.Y));//获取坐标点
                if (hitInfo.RowHandle >= 0)
                {
                    DataRow row = gridView1.GetDataRow(hitInfo.RowHandle);
                    _list.Clear();
                    _list.Add(row[0].ToString());
                    gisResoureMonControl1.SetSelectResource(_list);
                }          
            }

    15 、获取选中行的值

    代码:

    private void gridData_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
            {
                 _id = GWEntLib.Utilities.Mix.ConvertUtils.ToInt32(gridData.GetRowCellValu(e.FocusedRowHandle, "Id"));
                 _emrFileReadList = EMRTemplateFileReadList.GetEMRTemplateFileReadList(_id);
                gridVersonData.DataSource = _emrFileReadList;
              
            }

    响应事件:FocusedRowChanged
    获取字段值:gridData.GetRowCellValue(e.FocusedRowHandle, "Id")
    注意:FocusedRowChanged是Gridview的事件而不是gridControl的事件
    gridControl与Gridview的区别:前者是容器,后者为视图

    16、将GridView 列表表头固定,无Filter效果

    17、DevExpress GridView 获取当前选中行的值。

    int rowIndex = gridView1.FocusedRowHandle;
    DataRow dr = gridView1.GetDataRow(rowIndex);
    MessageBox.Show("课件 "" + dr.ItemArray[0].ToString() + "" 下载成功");

    18、GridView 去除选中行虚线。

       Run Desginer -> Appearance : FocusRectStyle : none;

  • 相关阅读:
    洛谷 P2330 [SCOI2005]繁忙的都市
    2016-2017 ACM-ICPC, Asia Tsukuba Regional Contest D Hidden Anagrams
    HDU1792A New Change Problem(GCD规律推导)
    HDU1222Wolf and Rabbit(GCD思维)
    poj2635The Embarrassed Cryptographer(同余膜定理)
    poj3270Cow Sorting(置换+贪心)
    计数排序(O(n+k)的排序算法,空间换时间)
    POJ1222EXTENDED LIGHTS OUT(高斯消元)
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)
    2301: [HAOI2011]Problem b ( 分块+莫比乌斯反演+容斥)
  • 原文地址:https://www.cnblogs.com/wordgao/p/4573617.html
Copyright © 2020-2023  润新知