Auf Englisch lesen

Freigeben über


DataGridView.RowValidating Ereignis

Definition

Tritt auf, wenn eine Zeile eine Validierung ausführt.

C#
public event System.Windows.Forms.DataGridViewCellCancelEventHandler RowValidating;
C#
public event System.Windows.Forms.DataGridViewCellCancelEventHandler? RowValidating;

Ereignistyp

Beispiele

Im folgenden Codebeispiel wird verwendet RowValidating , um zu überprüfen, ob gültige Titel- und Veröffentlichungsdaten eingegeben werden.

C#
private void ValidateByRow(Object sender, 
    DataGridViewCellCancelEventArgs data) 
{
    DataGridViewRow row = 
        songsDataGridView.Rows[data.RowIndex];
    DataGridViewCell trackCell = 
        row.Cells[songsDataGridView.Columns["Track"].Index];
    DataGridViewCell dateCell = 
        row.Cells[songsDataGridView.Columns["Release Date"].Index];
    data.Cancel = !(IsTrackGood(trackCell) && IsDateGood(dateCell));
}

private Boolean IsTrackGood(DataGridViewCell cell)
{
    Int32 cellValueAsInt;
    if (cell.Value.ToString().Length == 0)
    {
        cell.ErrorText = "Please enter a track";
        songsDataGridView.Rows[cell.RowIndex].ErrorText = 
            "Please enter a track";
        return false;
    }
    else if (cell.Value.ToString().Equals("0"))
    {
        cell.ErrorText = "Zero is not a valid track";
        songsDataGridView.Rows[cell.RowIndex].ErrorText =
            "Zero is not a valid track";
        return false;
    }
    else if (!Int32.TryParse(cell.Value.ToString(), out cellValueAsInt))
    {
        cell.ErrorText = "A Track must be a number";
        songsDataGridView.Rows[cell.RowIndex].ErrorText =
            "A Track must be a number";
        return false;
    }
    return true;
}

private Boolean IsDateGood(DataGridViewCell cell) 
{
    if (cell.Value == null)
    {
        cell.ErrorText = "Missing date";
        songsDataGridView.Rows[cell.RowIndex].ErrorText = 
            "Missing date";
        return false;
    }
    else
    {
        try
        {
            DateTime.Parse(cell.Value.ToString());
        }
        catch (FormatException)
        {
            cell.ErrorText = "Invalid format";
            songsDataGridView.Rows[cell.RowIndex].ErrorText = 
                "Invalid format";

            return false;
        }
    }
    return true;
}

Hinweise

Dieses Ereignis entspricht dem Control.Validating -Ereignis. Verwenden Sie dieses Ereignis, um eine Überprüfung für alle Werte einer Zeile durchzuführen. Wenn die Zeile die Überprüfung nicht besteht, legen Sie die CancelEventArgs.Cancel -Eigenschaft auf fest true. Durch Das Abbrechen dieses Ereignisses wird verhindert, dass die RowValidatedEreignisse , Control.Validatingund Control.Validated auftreten. Außerdem wird verhindert, dass der Benutzer die ungültige Zeile verlässt, und verhindert, dass die Zeile in einer externen Datenquelle im datengebundenen Modus gespeichert wird.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.

Gilt für:

Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Weitere Informationen