2

ユーザーがdatagridview行のチェックボックスをオフにすると、メッセージボックスが表示され、ユーザーが「はい」と答えた場合、行は削除され、ユーザーが「いいえ」と答えた場合、チェックボックスを再度チェックする必要があります。ただし、後でデータグリッドビューのどこかをクリックしない限り、実際にはチェックされません。dgv を更新するためのアイデアはありますか?

Private Sub DataGridView2_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellValueChanged

  If e.RowIndex <> -1 Then
    Dim row As DataGridViewRow = DataGridView2.Rows(e.RowIndex)
    If e.ColumnIndex = 0 Then
      If row.Cells(0).Value = False Then
        If MessageBox.Show("Delete view from database.", "Delete", MessageBoxButtons.YesNo) = DialogResult.Yes Then
          DataGridView2.Rows.RemoveAt(e.RowIndex)
        Else
          row.Cells(0).Value = True
          DataGridView2.Invalidate()
        End If
      End If
    End If
  End If
End Sub

Private Sub DataGridView2_CurrentCellDirtyStateChanged(sender As Object, e As EventArgs) Handles DataGridView2.CurrentCellDirtyStateChanged
  If DataGridView2.IsCurrentCellDirty Then
    DataGridView2.CommitEdit(DataGridViewDataErrorContexts.Commit)
  End If
End Sub
4

1 に答える 1

5

の代わりにInvalidate()、次のように を呼び出しRefreshEdit()てみてください。

Else
  row.Cells(0).Value = True
  DataGridView2.RefreshEdit()
End If
于 2012-06-05T18:19:27.927 に答える