• dev grid 常用方法


    绑定数据源

    public void Data()
    {
    DataTable td = new DataTable();
    DataRow row = td.NewRow();
    foreach (GridColumn item in gridView1.Columns)
    {
    DataColumn it = new DataColumn(item.FieldName, typeof(String));
    if (item.FieldName == "check")//添加复选框
    {
    td.Columns.Add(item.FieldName, Type.GetType("System.Boolean"));
    td.Columns[item.FieldName].DefaultValue = Boolean.FalseString;
    continue;
    }
    td.Columns.Add(it);
    }

    gridControl1.DataSource = td;
    }

    //重要

    列标题字体设置
    Appearences》HeaderPanel

    1、获取选中行的某列的值:object ojb =GridView1.getrowcellvalue(GridView1.focusedrowhandle,"列名");

    获取选中行的某列的值
    this.gridView1.GetRowCellValue(0, gridView1.Columns["StorkCode"]);
    //赋值
    this.gridView1.SetRowCellValue(i, gridView1.Columns["jianshu"], gdjianshu.ToString());

    2、设置标头居中,只需要设置Views-->Appearance-->HeaderPanel-->TextOptions.HAlignment=Center。内容居中设置:Columns-->AppearanceCell-->TextOptions.HAlignment=Center。上图第一列设置了内容居中。

    3、设置Gridview控件,列头不可排序

    this.gridDataDetail.gridView1.OptionsCustomization.AllowSort = false;


    4、使Gridview控件,失去选中焦点

    this.gridData.gridView1.FocusedRowHandle = -1

    5、判断Gridview是否选中了数据

    int index= this.gridData.gridView1.GetFocusedDataSourceRowIndex() ;

    如果index小于0,证明没有选中行,否则就选中了行数据

    6、获取选中Gridview的行数据

    DataRow vCurrenRow = this.gridData.gridView1.GetFocusedDataRow();

    7、删除选中Gridview行数据

    this.gridDataDetail.gridView1.DeleteRow(this.gridDataDetail.gridView1.FocusedRowHandle);

    8、Gridview新增一条编辑行

    DataRow vDetailRow = this.DataDetailSourceTable.Rows.Add(); //这是新增加了一行
    vDetailRow["primary_key"] = ""; primary_key为数据库绑定到Gridview中的字段,后面可以对其进行赋值。

    9、获取GridView中所有的选中的行号

    int[] iRowId = this.gridData.gridView1.GetSelectedRows();


    在表格添加一列按钮
    在column properties-->buttons--->将属性kind选为Glyph,然后将Caption设为把ButtonEdit的TextEditStyle设为HideTextEditor然后Button,第一个button的Caption写GO,Kind设为Glyph


    在Gridview的OptionCustomization里面,有个属性叫"AllowColumnMoving",把这个关闭,就不会显示Column Chooser的菜单了。


    //选中行的下标 
    int index = this.gridView1.FocusedRowHandle;
    //判断是否为回车 
    if (e.KeyChar == Keys.Enter.GetHashCode())
    {
    //视图内是否有数据,并且当前下标是否在最后一行 
    if (gridView1.Columns.View.RowCount != 0 && index < gridView1.Columns.View.RowCount - 1)
    {
    //如果大于0就从下标行开始 
    if (index > 0)

    //TO DO 
    }
    }
    else { 
    // SubjectQuotaRowAdd();
    }
    }
    //这是我写的 回车代表新建 也能够代替Tab跳格键 我现在只能做出回车焦点定位到某行 而不能定位到某行的某单元


    4、获取RadioGroup上选择的是哪一个,代码如下:
    private void radioGroup1_SelectedIndexChanged(object sender, EventArgs e)
    {
    if (radioGroup1.SelectedIndex == 1)
    {
    MessageBox.Show("未发送"); 
    }
    if (radioGroup1.SelectedIndex == 0)
    {
    MessageBox.Show("已发送");
    }
    if (radioGroup1.SelectedIndex == 2)
    {
    MessageBox.Show("发送失败");
    }
    }

    在gridview的CustomDrawCell事件中,添加如下代码,则可实现行数据的颜色控制。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    if (gvData.GetDataRow(e.RowHandle) == nullreturn;
       if (gvData.GetDataRow(e.RowHandle)["列名"].ToString()=="1" )
       {
    //该行数据的该列的值为1时,其背景色为gray
       e.Appearance.BackColor = Color.Gray;
       }
       else
       {
       e.Appearance.BackColor = Color.Blue;
       }
       if (e.RowHandle == gvData.FocusedRowHandle)
       {
       e.Appearance.ForeColor = Color.White;
       e.Appearance.BackColor = Color.RoyalBlue;
       
            private void gridView2_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
            {
                if(e.RowHandle == 2 && e.Column.FieldName == "NAME")
                {
                    e.Appearance.ForeColor = Color.Red;
                }
            }

    知道DevExpress XtraGrid是如何定位和查找指定列显示值的行吗?注意是列的实显示值,而不是关联数据源列值。

    下面将给出两个查找实例的代码,供大家一起来分享:

    using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Columns; // ... string searchText = "Japan"; // obtaining the focused view ColumnView view = (ColumnView)gridControl1.FocusedView; // obtaining the column bound to the Country field GridColumn column = view.Columns["Country"]; if(column != null) { // locating the row //如果用数据源中的列值,请用ColumnView.LocateByValue int rhFound = view.LocateByDisplayText(view.FocusedRowHandle + 1, column, searchText); // focusing the cell if(rhFound != GridControl.InvalidRowHandle) { view.FocusedRowHandle = rhFound; view.FocusedColumn = column; } }

    DevExpress.XtraGrid.Views.Base.ColumnView view = gridControl1.MainView as DevExpress.XtraGrid.Views.Base.ColumnView; view.BeginUpdate(); try { int rowHandle = 0; DevExpress.XtraGrid.Columns.GridColumn col = view.Columns["Category"]; while(true) { // locating the next row rowHandle = view.LocateByValue(rowHandle, col, "SPORTS"); // exiting the loop if no row is found if (rowHandle == DevExpress.XtraGrid.GridControl.InvalidRowHandle) break; // perform specific operations on the row found here // ... rowHandle++; } } finally { view.EndUpdate(); }

  • 相关阅读:
    需求工程阅读笔记03
    需求工程阅读笔记02
    【Augmented Reality】增强现实中的光学透射式头盔显示器的标定进阶
    基于单个RGB摄像头的手势识别程序设计与实现
    将Vuforia程序发布到Windows10系统的基本流程
    基于Unity3D 的Vuforia SDK开发基础教程
    微软KinectV2深度传感器在Ubuntu上的配置和使用
    Windows 10(64位)配置Caffe运行环境的基本流程
    Ubuntu14.04 64位配置Caffe 教程(基于CUDA7.5)
    空间增强现实——基于贝塞尔曲面的异形表面投影变形技术
  • 原文地址:https://www.cnblogs.com/lhyqzx/p/7842742.html
Copyright © 2020-2023  润新知