GridControl详解(七)事件

private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                //鼠标的那个按钮按下
            }
            if (e.Clicks == 2)
            {
                 //鼠标点击次数
            }
            if (e.Delta > 0)
            {
                //鼠标滚轮滚动方向
            }
            if (e.X > 0 & e.Y > 0)
            {
                //鼠标的坐标
            }
            if (e.RowHandle > 0)
            {
                //点击的行号
            }
            if (e.CellValue != null)
            {
                //点击的单元格中的值
            }
            if (e.Column != null)
            {
                //点击的单元格所属列信息
            }
        }

</span>private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                //鼠标的那个按钮按下
            }
            if (e.Clicks == 2)
            {
                //鼠标点击次数
            }
            if (e.Delta > 0)
            {
                //鼠标滚轮滚动方向
            }
            if (e.X > 0 & e.Y > 0)
            {
                //鼠标的坐标
            }
            if (e.RowHandle > 0)
            {
                //点击的行号
            }
        }

重新绘制列样式事件:gridView1_CustomDrawCell

代码:

private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
    if (e.Column.FieldName == "数据")
    {
        GridCellInfo GridCellInfo = e.Cell as GridCellInfo;
        if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString()) <= -30)
            e.Appearance.BackColor = Color.Yellow;
        else if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString()) > -30
            && double.Parse(GridCellInfo.CellValue.ToString()) <= -50)
            e.Appearance.BackColor = Color.Green;
        else if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString()) > -50)
            e.Appearance.BackColor = Color.Red;
    }
}

重新计算备注事件:gridView1_CalcPreviewText

代码:

private void gridView1_CalcPreviewText(object sender, DevExpress.XtraGrid.Views.Grid.CalcPreviewTextEventArgs e)
{
    DataRow dr = gridView1.GetDataRow(e.RowHandle);
    e.PreviewText = dr["name"].ToString() + " : " + dr["aihao"].ToString();
}

注意:GridView中大多数事件我们都会并且必须用到e这个参数,我们可以从e这个参数中获取很多信息,包括单元格、列、行、表格、GridControl的信息。我们要根据事件的意义来了解这个e是单元格级别的,或是行级别的,或是列级别的等,因为我们可以获取e的层级以上的信息,层级以下的信息就不能获取了。

e中的属性都是大同小异,其中最常用的是e.RowHandle这个属性,它代表行号的意思,通过gridView1.GetDataRow(e.RowHandle)方法可以获得这一行的数据行DataRow;并以此来做很多操作。

上述我们也说过组行的RowHandle为负数,我们通过GetDataRow获取数据行是错误的,这时我们通过gridView1.GetDataRowHandleByGroupRowHandle(e.RowHandle);方法来转化,这时得到的数据行是该组的第一行数据。在此我们需特别注意。如果加入上述转换,我们选择数据时每组第一行数据就会重复,我们要做去重复处理。

皮肤设置

时间: 2024-11-07 15:21:23

GridControl详解(七)事件的相关文章

百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和DOM编程里的事件模型一样,百度地图API也提供了类似的事件机制.本文介绍了事件监听的添加和移除方法,this指针和事件参数的使用以及绑定事件监听函数中涉及的闭包问题,最后分享了一个用来增强地图API事件机制的开源项目. 事件添加和移除 我们最简单的事件开始,下面的代码示例给map对象添加了click事件的监听

文件IO详解(七)---lseek函数详解

lseek函数用来设置当前文件偏移量. ====================================================== 函数原型: 函数参数: fd:要操作的文件描述符 offset:基于whence参数的偏移量 whence:参考点位置 返回值: 调用成功时返回当前相对于文件开头的偏移量,以字节为单位 调用失败时返回 -1,并修改errno的值 ======================================================= when

GridControl详解(四)分组排序汇总

分组: 按时间分第一组: 按性别分第二组: 显示结果: 高级设置: 将所有组展开代码:gridView1.ExpandAllGroups(); 显示结果: 自定义组名,GridView级事件 增加事件: private void gridView1_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e) { GridGroupRowInfo GridGroup

GridControl详解(三)列数据的格式设置

为了测试方便,我们加入新的3列,格式分别是数据,时间,字符串.代码增加下列部分: //格式增加 dt.Columns.Add("数据",typeof(decimal)); dt.Columns.Add("时间",typeof(DateTime)); dt.Columns.Add("自定义",typeof(string)); dt.Rows.Add(new object[] { 1, "张三", 1,"东大街6号&qu

javaScirpt事件详解-原生事件基础(一)

# 事件 > JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间,通过监听特定事件的发生,你能响应相关的操作.**图片引用:UI Events** # 事件流 主要是当时的IE团队提出的事件流逝是事件冒泡流,而Netscape提出的是事件捕获流, 可以使用DOM2级定义的*addEventListener()*方法来处理在冒泡或者捕获阶段调用事件处理程序. ## 事件冒泡 即事件开始时由最具体的元素(文档中嵌套最深的节点)接收,然后逐级

详解javascript事件绑定使用方法

由于html是从上至下加载的,通常我们如果在head部分引入javascript文件,那么我们都会在javascript的开头添加window.onload事件,防止在文档问加载完成时进行DOM操作所出现的错误.如果有多个javascript文件,那么极有可能出现多个window.onload事件,但是最后起作用的只有一个,这时候就需要使用事件绑定来解决这个问题了. IE方式attachEvent(事件名称, 函数),绑定事件处理函数detachEvent(事件名称, 函数),解除绑定 DOM方

Android事件详解——拖放事件DragEvent

1.Android拖放框架的作用? 利用Android的拖放框架,可以让用户用拖放手势把一个View中的数据移到当前layout内的另一个View中去. 2.拖放框架的内容? 1)拖放事件类 2)拖放监听器 3)其他辅助的方法和类 3.拖放过程? 拖放过程有四个基本步骤: 1)启动 为了响应用户开始拖动的手势,需要调用View的startDrag方法来通知系统.startDrag方法的参数需要指定所拖动的数据.元数据和绘制拖动阴影的回调方法. 作为响应,系统首先通过回调来获取拖动阴影,然后在设备

Android事件分发详解(四)——事件传递基础示例

MainActivity如下: package com.cn; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnTouchListener; /** * Demo描述: * Andr

GridControl详解(一)原汁原味的表格展示

Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多半借助Demo和英文帮助文档.网上具体的使用方法也多半零碎.偶遇一个简单而且详细的使用文档.好记性不如烂笔头!转载过来,整理整理发出来做个记录,总共有十个小节.做的非常精细,非常感谢原作者. 插件所在位置 使用时拖拽过来,如下所示即使拖拽过来原封不动的样子: 在程序中写入构建一个表格的代码: private DataTable InitDt() { DataTable dt