2009-04-23 133 views
1

我有一個綁定到對象集合的DataGridView。從DataGridView刪除選定的行

我想在窗體上創建一個刪除按鈕,以便用戶可以刪除選定的行。

但是,如果選擇新行(網格中特殊的最後一行),則會出現問題。 如果我選擇新行,然後嘗試單擊「刪除」按鈕,則網格失去其焦點並更改所選行!它使最後一行被選中(新行之前的那一行)。因此,在刪除按鈕處理程序中,還有另一行已被選中,而不是新行!

除了隱藏那個特殊的新行(AllowUserToAddRows = false)並且創建自己的「添加」按鈕和代碼之外,我該如何解決這個問題?

回答

2

當一個無效的行(即特殊的新行)被選定

您可以禁用刪除按鈕
0

私人小組btnDelete_Click(BYVAL發件人爲System.Object的,BYVALË作爲System.EventArgs)把手btnDelete.Click

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