Compartir a través de


DataGridView.CommitEdit(DataGridViewDataErrorContexts) Método

Definición

Confirma los cambios realizados a la celda actual en la caché de datos sin salir del modo de edición.

public:
 bool CommitEdit(System::Windows::Forms::DataGridViewDataErrorContexts context);
public bool CommitEdit (System.Windows.Forms.DataGridViewDataErrorContexts context);
member this.CommitEdit : System.Windows.Forms.DataGridViewDataErrorContexts -> bool
Public Function CommitEdit (context As DataGridViewDataErrorContexts) As Boolean

Parámetros

context
DataGridViewDataErrorContexts

Combinación bit a bit de los valores de DataGridViewDataErrorContexts que especifica el contexto en el que se puede producir un error.

Devoluciones

Es true si se confirmaron los cambios; en caso contrario, es false.

Excepciones

No se pudo confirmar el valor de la celda y no hay ningún controlador para el evento DataError o el controlador ha establecido la propiedad ThrowException en true.

Ejemplos

En el ejemplo de código siguiente se llama al CommitEdit método dentro de un CurrentCellDirtyStateChanged controlador de eventos para generar el CellValueChanged evento. Este ejemplo de código forma parte de un ejemplo más grande que se proporciona en How to: Disable Buttons in a Button Column (Deshabilitar botones en una columna de botón) en el control DataGridView de Windows Forms.

// This event handler manually raises the CellValueChanged event
// by calling the CommitEdit method.
void dataGridView1_CurrentCellDirtyStateChanged(object sender,
    EventArgs e)
{
    if (dataGridView1.IsCurrentCellDirty)
    {
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit);
    }
}

// If a check box cell is clicked, this event handler disables  
// or enables the button in the same row as the clicked cell.
public void dataGridView1_CellValueChanged(object sender,
    DataGridViewCellEventArgs e)
{
    if (dataGridView1.Columns[e.ColumnIndex].Name == "CheckBoxes")
    {
        DataGridViewDisableButtonCell buttonCell =
            (DataGridViewDisableButtonCell)dataGridView1.
            Rows[e.RowIndex].Cells["Buttons"];

        DataGridViewCheckBoxCell checkCell =
            (DataGridViewCheckBoxCell)dataGridView1.
            Rows[e.RowIndex].Cells["CheckBoxes"];
        buttonCell.Enabled = !(Boolean)checkCell.Value;

        dataGridView1.Invalidate();
    }
}
' This event handler manually raises the CellValueChanged event
' by calling the CommitEdit method.
Sub dataGridView1_CurrentCellDirtyStateChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles dataGridView1.CurrentCellDirtyStateChanged

    If dataGridView1.IsCurrentCellDirty Then
        dataGridView1.CommitEdit(DataGridViewDataErrorContexts.Commit)
    End If
End Sub

' If a check box cell is clicked, this event handler disables  
' or enables the button in the same row as the clicked cell.
Public Sub dataGridView1_CellValueChanged(ByVal sender As Object, _
    ByVal e As DataGridViewCellEventArgs) _
    Handles dataGridView1.CellValueChanged

    If dataGridView1.Columns(e.ColumnIndex).Name = "CheckBoxes" Then
        Dim buttonCell As DataGridViewDisableButtonCell = _
            CType(dataGridView1.Rows(e.RowIndex).Cells("Buttons"), _
            DataGridViewDisableButtonCell)

        Dim checkCell As DataGridViewCheckBoxCell = _
            CType(dataGridView1.Rows(e.RowIndex).Cells("CheckBoxes"), _
            DataGridViewCheckBoxCell)
        buttonCell.Enabled = Not CType(checkCell.Value, [Boolean])

        dataGridView1.Invalidate()
    End If
End Sub

Comentarios

Este método intenta convertir el valor con formato especificado por el usuario al tipo de datos de celda subyacente. Para ello, genera el CellParsing evento , que puede controlar para personalizar la conversión de tipos. De lo contrario, se usan convertidores de tipos predeterminados. Los errores de conversión pueden dar lugar a una excepción si el DataError evento no se controla para evitarlo. Si el valor se convierte correctamente, se confirma en el almacén de datos, lo que genera el CellValuePushed evento para celdas no enlazadas a datos cuando el valor de la VirtualMode propiedad es true. Si el valor se confirma correctamente, se produce el CellValueChanged evento .

Se aplica a

Consulte también