你首先要得到你选定的行
DataRowView row = this.m_DataSet.Tables[0].DefaultView[this.dataGrid.CurrentRowIndex];

解决方案 »

  1.   

    为什么用C#自己的工具生成的界面(自己未加一句代码),然后自己加一个按钮,写上:
    BindingSource.RemoveCurrent();
    却能正常删除选中的行?
      

  2.   

    CurrencyManager gridCurrencyManager =
        (CurrencyManager)this.BindingContext[this.dataGridView1.DataSource, this.dataGridView1.DataMember];gridCurrencyManager.RemoveAt(this.dataGridView1.CurrentRow.Index);
      

  3.   

    发现了郁闷的问题:
       在网格中双击以后,BindingSource.RemoveCurrent();OK。
       单击不行,不知道什么原因。
      

  4.   

    自己解决了。
    原来网格的DataSource不能绑定到DataSet。虽然网格的DataSource和BindingSource的DataSoure是同一个DataSet,
    但是在绑定的时候,BindingSource的DataSource是DataSet,但网格的DataSource是BindingSource。这样用BindingSource.RemoveCurrent();就可以了。
    否则的话,网格要双击,BindingSource.RemoveCurrent();才有效。散分,虽然自己解决,但还是感谢热心人士。