DataGridView.CommitEdit(DataGridViewDataErrorContexts) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Confirma as alterações à célula atual no cache de dados sem encerrar o modo de edição.
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
Uma combinação bit a bit de valores DataGridViewDataErrorContexts que especifica o contexto no qual pode ocorrer um erro.
Retornos
true
se as alterações foram confirmadas; caso contrário, false
.
Exceções
O valor da célula não pôde ser confirmado e não há nenhum manipulador para o evento DataError ou o manipulador definiu a propriedade ThrowException como true
.
Exemplos
O exemplo de código a seguir chama o CommitEdit método dentro de um CurrentCellDirtyStateChanged manipulador de eventos para acionar o CellValueChanged evento. Este exemplo de código faz parte de um exemplo maior fornecido em Como desabilitar botões em uma coluna de botão no controle Windows Forms DataGridView.
// 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
Comentários
Esse método tenta converter o valor formatado especificado pelo usuário para o tipo de dados de célula subjacente. Para fazer isso, ele aciona o CellParsing evento , que você pode manipular para personalizar a conversão de tipo. Caso contrário, conversores de tipo padrão são usados. Erros de conversão poderão resultar em uma exceção se o DataError evento não for tratado para impedi-lo. Se o valor for convertido com êxito, ele será confirmado no armazenamento de dados, gerando o CellValuePushed evento para células não associadas a dados quando o valor da VirtualMode propriedade for true
. Se o valor for confirmado com êxito, o CellValueChanged evento ocorrerá.