全局变量
Private WithEvents DtForDataGrid1 As DataTable
下面是事件
Private Sub DtForDataGrid1_RowChanged(ByVal sender As Object, ByVal e As System.Data.DataRowChangeEventArgs) Handles DtForDataGrid1.RowChanged
        If e.Action = DataRowAction.Add Then        ElseIf e.Action = DataRowAction.Delete Then        End If
    End Sub
删除datatable中的数据
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Me.C1TrueDBGrid1.RowCount > 0 Then
            Me.DtForDataGrid1.Rows.RemoveAt(Me.C1TrueDBGrid1.Row)
        End If
    End Sub为什么这样做没有发生我想要的事件啊

解决方案 »

  1.   

    用 Me.C1TrueDBGrid1.Row.Delete() 替代 
    Me.DtForDataGrid1.Rows.RemoveAt(Me.C1TrueDBGrid1.Row) , 
    再试一下
      

  2.   

    恩,remove只是从rows集合中移去这个元素,而调用delete方法才是真正从datatable中删除这一行
      

  3.   

    全局变量
    Private WithEvents DtForDataGrid1 As DataTable
    下面是事件
    Private Sub DtForDataGrid1_RowChanged(ByVal sender As Object, ByVal e As System.Data.DataRowChangeEventArgs) Handles DtForDataGrid1.RowChanged
            If e.Action = DataRowAction.Add Then        ElseIf e.Action = DataRowAction.Delete Then        End If
        End Sub
    删除datatable中的数据
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If Me.C1TrueDBGrid1.RowCount > 0 Then
                Me.DtForDataGrid1.Rows.RemoveAt(Me.C1TrueDBGrid1.Row)
            End If
        End Sub为什么这样做没有发生我想要的事件啊
      

  4.   

    这句判断不对
    ElseIf e.Action = DataRowAction.Delete Then其实是触发了RowChanged事件,如果判断是删除操作应该如下:
    if( e.Action == DataRowAction.Commit && e.Row.RowState == DataRowState.Detached )你自己改成vb版本的。