如题,怎么样知道鼠标点击的是表头,列头,记录还是空白处?C#,WINFORM多谢!急!

解决方案 »

  1.   

    你可设置各种情况的事件:
    CellMouseClick  单击记录行发生
    RowHeaderMouseClick 单击表头发生
    ColumnHeaderMouseClick 单击列头发生
      

  2.   

    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)
                {
                    //记录单元格
                }
            }
      

  3.   

    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中就无法判断了吗?
      

  4.   

    参考
    http://www.cnblogs.com/suibing/archive/2005/04/24/144206.html
      

  5.   

    多谢,我希望能在DoubleClick事件中判断,该怎么办?如果是在DoubleClick中,那么楼上您说的方法就都不生效了
      

  6.   

    CellMouseDoubleClick            记录行发生 
    ColumnHeaderMouseDoubleClick    表头发生 
    RowHeaderMouseDoubleClick       列头发生
    空白?不懂。。