求高手们帮忙!DATAGRID中,如何区分鼠标点击的是表头,记录还是空白处?

menganafff 2008-12-25 04:08:09
如题,怎么样知道鼠标点击的是表头,列头,记录还是空白处?C#,WINFORM

多谢!急!
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
love小在在 2008-12-25
  • 打赏
  • 举报
回复
楼主可能是要来个单击表头排序吧
每个事件中都有个e 对象可以用的..
heroyct 2008-12-25
  • 打赏
  • 举报
回复
CellMouseDoubleClick 记录行发生
ColumnHeaderMouseDoubleClick 表头发生
RowHeaderMouseDoubleClick 列头发生


空白?不懂。。
sprc_lcl 2008-12-25
  • 打赏
  • 举报
回复
dataGridView1_MouseDoubleClick
menganafff 2008-12-25
  • 打赏
  • 举报
回复
多谢,我希望能在DoubleClick事件中判断,该怎么办?如果是在DoubleClick中,那么楼上您说的方法就都不生效了
menganafff 2008-12-25
  • 打赏
  • 举报
回复
System.Drawing.Point pt = new Point(e.X,e.Y);
DataGrid.HitTestInfo hti = this.dataGrid1.HitTest(pt);

在dataGrid1_MouseUp事件中,我用上面的方法就可以实现判断,可是这实现的是单击,我希望的是双击,但是在dataGrid1_DoubleClick事件中,e就没有了X,Y的属性,也就无法实现判断了

这个问题该怎么解决呢?难道只有在MouseUp事件中能判断出来,在DoubleClick中就无法判断了吗?
sprc_lcl 2008-12-25
  • 打赏
  • 举报
回复
private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
int ci = e.ColumnIndex;
int ri = e.RowIndex;
if (ci == -1 && ri == -1)
{
//左上角那个空的单元
}
if (ci == -1 && ri >= 0)
{
//记录行左边头的空单元
}
if (ci >= 0 && ri == -1)
{
//列头
}
if (ci >= 0 && ri >= 0)
{
//记录单元格
}
}
sprc_lcl 2008-12-25
  • 打赏
  • 举报
回复
你可设置各种情况的事件:
CellMouseClick 单击记录行发生
RowHeaderMouseClick 单击表头发生
ColumnHeaderMouseClick 单击列头发生

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧