代码之家  ›  专栏  ›  技术社区  ›  nightcoder

从DataGridView中删除所选行

  •  1
  • nightcoder  · 技术社区  · 16 年前

    我有一个绑定到对象集合的DataGridView。

    我想在窗体上创建一个删除按钮,以便用户可以删除所选行。

    但如果选择了新行(网格中特殊的最后一行),则会出现问题。 如果我选择新行,然后尝试单击“删除”按钮,网格将失去焦点并更改所选行!它将选定最后一行(新行之前的一行)。所以在删除按钮处理程序中,已经选择了另一行,而不是新行!

    除了隐藏那个特殊的新行(allowUserTodRows=false)并为它生成自己的“添加”按钮和代码之外,我如何解决这个问题?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Julien Poulin    16 年前

    选择无效行(即特殊新行)时,可以禁用“删除”按钮。

        2
  •  0
  •   SunnyShukla    16 年前

    private sub btnDelete_ck(byval sender as system.object,byval e as system.eventargs)处理btnDelete。单击

        Dim gr As New DataGridViewRow
        For Each gr In DataGridView1.SelectedRows
            ds.Tables(0).Rows(gr.Index).Delete()
        Next
        ds.AcceptChanges() ' Accept Changes
        DataGridView1.Rows.Clear()
        lbltest.Text = ""
        calldata(ds) ' this function is as follow
        'Public Function calldata(ByRef DS As DataSet)
        '    Dim i As Integer = 0
        '    Dim dr As DataRow
        '    Dim dc As DataColumn
        '    For Each dr In DS.Tables(0).Rows  'dt.Rows
        '        Dim j As Integer = 0
        '        DataGridView1.Rows.Add()
        '        For Each dc In DS.Tables(0).Columns 'dt.Columns
        '            DataGridView1.Rows(i).Cells(j).Value = dr(dc).ToString()
        '            lbltest.Text = lbltest.Text & " : " & dr(dc).ToString()
        '            j = j + 1
        '        Next
        '        i = i + 1
        '    Next
    
        'End Function
        ' the above code only update your dataset not actual data
    End Sub
    
    推荐文章