DataGridView.CellValidating Evento
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.
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.