System.Windows.Forms.DataGrid.HitTestInfo myHitTest;
//
//单击鼠标右键,返回
//
if (e.Button==MouseButtons.Right) return;
this.Cursor=System.Windows.Forms.Cursors.WaitCursor;
//
//获取当前单击位置
//
myHitTest =dGRecZg.HitTest(e.X,e.Y);
//
//单击的是DataGrid单元格,而且为第一列
//
if(this.dv[myHitTest.Row]["sel"].ToString()=="True")
{
   this.dv[myHitTest.Row].Delete();
}//更新数据源......

解决方案 »

  1.   

    zhpsam109(孤寂无边) ,我是要按一个BUTTON,删除DATAGRID里面CHECKBOX为选中的几行,在按BUTTON里取不到e.X,e.Y啊,而且我没有dataview啊...
      

  2.   

    帮你顶!!我也遇到这个问题,那个CheckBox怎么选出来啊?各位大虾帮忙给解决下!!
      

  3.   

    for(int i=0;i<ds.tables[0].rows.count.tostring();i++)
    {
        checkbox cb=(checkbox)ds.tables[0].rows[i][0].findcontrol("");// 显示定义checkbox
        if(cb.fdkfjd==check)// 判断checkbox是否打对号
           //接下来连接数据库,把它删除。
    }
    // 不好意思,我也是新手,我用的机器大小写不好用。我只是告诉你一个思路。
      

  4.   

    有没有完整一点的代码??
    另外,ROW的高度怎样设???
      

  5.   

    是显示时的高度,因为我把COMBOBOX放进DATAGRID之后,那个行不够高,不能完全显示
      

  6.   

    zhpsam109(孤寂无边) 
    删除一行是可以了,但是要删多行呢?我用FOR循环来删,但有问提...
    另外,还有效率问提,感觉删得很慢,就是点了删除按钮以后要过一会才删掉的.
      

  7.   

    解决了! private void btnSORemSel_Click(object sender, System.EventArgs e)
    {
    //删除datatable里的也可以,不过好象慢点!
    // for (int y=0;y<dtSalesProduct.Rows.Count;y++)
    // {
    // if (this.dgdSOSalPro[y, 0].ToString()=="True")
    // {
    // dtSalesProduct.Rows.RemoveAt(y);
    // }
    // }
    DataView dv;
    dv=dtSalesProduct.DefaultView; for (int y=0;y<dv.Count;y++)
    {
    if (this.dgdSOSalPro[y, 0].ToString()=="True")
    {
    dv[y].Delete();
    if(y!=0)
    {
    y-=y;
    }
    else
    {
    y=-1;
    }
    }
    }
    }