DataGridView.CancelEdit()异常

时间:2018-07-06 13:42:59

标签: vb.net datagridview

在我的表单上,我有一个按钮,该按钮允许/禁止用户在DataGridView中进行编辑。此DGV绑定到同一窗体上的BindingSource(又绑定到DataSet的DataTable)。

Private Sub BtnModifica_Click(sender As Object, e As EventArgs) Handles btnModifica.Click
    If btnModifica.Text = "Modifica" Then
        dgvProg.EndEdit()
        With dgvProg
            .ReadOnly = False
            .AllowUserToAddRows = True
            .EditMode = DataGridViewEditMode.EditOnEnter
        End With
        ScegliMacchina.Enabled = False
        AbilitaControlli(True)
        btnModifica.Text = "Annulla Modifiche"
    Else
        MsgBox(dgvProg.CancelEdit())
        ProgrammatoreDataSet.RejectChanges()
        With dgvProg
            .ReadOnly = True
            .AllowUserToAddRows = False
            .EditMode = DataGridViewEditMode.EditProgrammatically
        End With
        ScegliMacchina.Enabled = True
        AbilitaControlli(False)
        AggiornaDgvProg()
        btnModifica.Text = "Modifica"
    End If
End Sub

我的问题是CancelEdit方法。

当我在输入DGV的第一行时单击按钮时,取消似乎完成了,但是DGV中的数据消失了,就像清除了基础表一样。如果之前还有其他行,则可以找到所有数据,并且CancelEdit也已正确完成。

DGV在[Macchina]字段上显示了由BindingSource过滤器过滤的DataRow的选择,该字段由用户通过名为[ScegliMacchina]的ComboBox选择。我重建的每一个SelectedIndex更改都会将过滤器重新应用于BindingSource。

有人知道为什么吗?

谢谢。

胭脂红

0 个答案:

没有答案