GridView有RowCellClick事件,即单元格点击事件,但是针对列标题行以及列标题单元格却没有相应的事件。
在这里使用GridView的MouseDown事件。
这里同样使用的是GridHitInfo来获取点击位置的信息,来判断是否在列标题上。GridHitInfo根据鼠标点击的x、y坐标获取该点的相关信息,判断是否点击在列标题行内。
private
void gridView_MouseDown(object sender,
MouseEventArgs e)
{
//鼠标左键点击
if (e.Button ==
MouseButtons.Left)
{
GridHitInfo info = gridView.CalcHitInfo(e.X, e.Y);
//在列标题栏内且列标题name是"colName"
if (info.InColumnPanel && info.Column.Name =="colName")
{
XtraMessageBox.Show("点击Name列标题!");
}
}
}
以上代码很简单,但是有个小问题,就是在该列右边线拖动这一列的列宽时,也会弹出对话框,因为这里拖动列宽也被视为点击鼠标。这显然不合适。解决这个问题的办法也很简单,就是判断鼠标点击位置不在右边线向左移动一点距离(3像素)范围内。
下面对以上代码稍加修改,就不会再有这个问题了。
private
void gridView_MouseDown(object sender,
MouseEventArgs e)
{
//鼠标左键点击
if (e.Button ==
MouseButtons.Left)
{
GridHitInfo gridHitInfo = gridView.CalcHitInfo(e.X, e.Y);
//在列标题栏内且列标题name是"colName"
if (gridHitInfo.InColumnPanel && gridHitInfo.Column.Name =="colName")
{
//获取该列右边线的x坐标
GridViewInfo gridViewInfo = (GridViewInfo)this.gridView.GetViewInfo();
int x = gridViewInfo.GetColumnLeftCoord(gridHitInfo.Column) + gridHitInfo.Column.Width;
//右边线向左移动3个像素位置不弹出对话框(实验证明3个像素是正好的)
if (e.X < x - 3)
{
XtraMessageBox.Show("点击Name列标题!");
}
}
}
}
作者:叉叉哥 转载请注明出处:http://blog.csdn.net/xiao__gui/article/details/7941086
分享到:
相关推荐
DevExpress的GridView动态绑定数据集,多线程动态修改UI自动刷新,输出中打印运行状态等
DevExpress gridview下拉框repositoryItemComboBox的使用...
解决DevExpress GridControl GridView 在新增数据行时数据为空的问题,新窗口数据返回时自动新增行并刷新。
针对DevExpress GridControl GridView 新增行AddNewRow() 很多人加了代码也无法实现添加行或者添加行后InitNewRow这个事件没有触发, 其中主要原因见附件实例代码!
只能导出导出devexpress插件的GridControl控件中GridView表格中的数据,表格中有什么数据导出什么数据,列顺序也不变。 文件说明: 1.ExportTableExcel.cs:实现导出逻辑的类 2.ExportExcelStyle.cs:导出的...
devexpress13 2 aspxgridview
DevExpress设置单元格不可编辑,选单元格则选中一行,目的是只展示数据,不提供修改功能: DevexpressGridControl禁止点击单元格修改 设置GridView.OptionsBehavior的Editable选项设为False。在这种情况下,整个Grid...
里面涵盖了开发过程对GridView属性设置的图文教程,希望对大家有帮助!
GridView列数字、货币和日期的显示格式
aspxgridview的通常适用方法,全选、获取选中行ID,列命令等,本例中用到数据库属于自用所以例子中的网站不能运行,但是使用方法很齐全,一看便可明白,用户可自行配置数据库测试,也可以将方法直接拿去用,希望能对...
通过代码GridView控件计算列的合计
devexpress表格控件gridcontrol实现对列统计,可实现总计,平均,求和等。
有时候需要在Gridcontrol中某一列添加一个小图片,以方便用户点击操作。这个例子是gridcontrol非图片列中添加小图片,进行相关的操作。
基于动软代码生成器,自己做的2个模板,选择数据库的一个表(视图、存储过程)后,可以自动生成devexpress的gridview数据列,也可以生成单行编辑时的界面,大大节省时间并避免错误。 需要:动软代码生成器、...
许多统计报表中都会涉及到复合表头的实现,最近写了一个复合表头的实例,与大家分享。
关于DevExpress的GridView的过滤条件如何转成相应的语句,dev官网提供了相应的处理方法,方便开发人员调用,目前支持数据库语句有MS Sql 、Oracle 、Access,资源用到的Dev版本是18.1,为了保证能运行,相关程序集...
DevExpress_ASPxGridView_使用方法汇总
DevExpress_ASPxGridView_使用方法汇总
工程中XtraForm1为devexpress gridview应用的源代码,包括事件、自定义绘制、行中增加按钮等技巧。
DevExpress中GridControl使用技巧总结-详解(图文并茂)