DataGridView.CellValidating Evento

Definição

Ocorre quando uma célula perde o foco de entrada, permitindo a validação do conteúdo.

public:
 event System::Windows::Forms::DataGridViewCellValidatingEventHandler ^ CellValidating;
public event System.Windows.Forms.DataGridViewCellValidatingEventHandler CellValidating;
public event System.Windows.Forms.DataGridViewCellValidatingEventHandler? CellValidating;
member this.CellValidating : System.Windows.Forms.DataGridViewCellValidatingEventHandler 
Public Custom Event CellValidating As DataGridViewCellValidatingEventHandler 

Tipo de evento

Exemplos

O exemplo de código a seguir manipula o CellValidating evento para garantir que apenas inteiros positivos sejam inseridos pelo usuário. Este exemplo faz parte de um exemplo maior disponível no VirtualMode tópico de referência.

void VirtualConnector::dataGridView1_CellValidating
    (Object^ sender, DataGridViewCellValidatingEventArgs^ e)
{
    int newInteger;

    // Don't try to validate the 'new row' until finished 
    // editing since there
    // is not any point in validating its initial value.
    if (dataGridView1->Rows[e->RowIndex]->IsNewRow) 
    {
        return; 
    }
    if (!Int32::TryParse(e->FormattedValue->ToString(), 
        newInteger) || (newInteger < 0))
    {
        e->Cancel = true;
    }
}
private void dataGridView1_CellValidating(object sender,
    DataGridViewCellValidatingEventArgs e)
{
    dataGridView1.Rows[e.RowIndex].ErrorText = "";
    int newInteger;

    // Don't try to validate the 'new row' until finished 
    // editing since there
    // is not any point in validating its initial value.
    if (dataGridView1.Rows[e.RowIndex].IsNewRow) { return; }
    if (!int.TryParse(e.FormattedValue.ToString(),
        out newInteger) || newInteger < 0)
    {
        e.Cancel = true;
        dataGridView1.Rows[e.RowIndex].ErrorText = "the value must be a non-negative integer";
    }
}
Private Sub dataGridView1_CellValidating(ByVal sender As Object, _
    ByVal e _
    As DataGridViewCellValidatingEventArgs) _
    Handles dataGridView1.CellValidating

    Me.dataGridView1.Rows(e.RowIndex).ErrorText = ""
    Dim newInteger As Integer

    ' Don't try to validate the 'new row' until finished 
    ' editing since there
    ' is not any point in validating its initial value.
    If dataGridView1.Rows(e.RowIndex).IsNewRow Then Return
    If Not Integer.TryParse(e.FormattedValue.ToString(), newInteger) _
        OrElse newInteger < 0 Then

        e.Cancel = True
        Me.dataGridView1.Rows(e.RowIndex).ErrorText = "the value must be a non-negative integer"

    End If
End Sub

Comentários

Cancelar esse evento cancela as alterações na célula atual. Quando esse evento é cancelado no modo associado a dados, o novo valor não é enviado por push para a fonte de dados subjacente. Quando esse evento for cancelado no modo virtual, o CellValuePushed evento não será gerado.

Manipule o CellValidated evento para executar o processamento pós-validação.

Para obter mais informações sobre como lidar com eventos, consulte Manipulando e gerando eventos.

Aplica-se a

Confira também