DataGridView.RowValidating DataGridView.RowValidating DataGridView.RowValidating DataGridView.RowValidating Event

Definition

Tritt auf, wenn eine Zeile eine Validierung ausführt.Occurs when a row is validating.

public:
 event System::Windows::Forms::DataGridViewCellCancelEventHandler ^ RowValidating;
public event System.Windows.Forms.DataGridViewCellCancelEventHandler RowValidating;
member this.RowValidating : System.Windows.Forms.DataGridViewCellCancelEventHandler 
Public Custom Event RowValidating As DataGridViewCellCancelEventHandler 

Beispiele

Im folgenden Codebeispiel wird RowValidating verwendet, um zu überprüfen, ob gültige Track-und releasedates eingegeben werden.The following code example uses RowValidating to check if valid track and release dates are entered.

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;
}
Private Sub ValidateByRow(ByVal sender As Object, _
    ByVal data As DataGridViewCellCancelEventArgs) _
    Handles songsDataGridView.RowValidating

    Dim row As DataGridViewRow = _
        songsDataGridView.Rows(data.RowIndex)
    Dim trackCell As DataGridViewCell = _
        row.Cells(songsDataGridView.Columns("Track").Index)
    Dim dateCell As DataGridViewCell = _
        row.Cells(songsDataGridView.Columns("Release Date").Index)
    data.Cancel = Not (IsTrackGood(trackCell) _
        AndAlso IsDateGood(dateCell))
End Sub

Private Function IsTrackGood(ByRef cell As DataGridViewCell) As Boolean

    If cell.Value.ToString().Length = 0 Then
        cell.ErrorText = "Please enter a track"
        songsDataGridView.Rows(cell.RowIndex).ErrorText = _
            "Please enter a track"
        Return False
    ElseIf cell.Value.ToString().Equals("0") Then
        cell.ErrorText = "Zero is not a valid track"
        songsDataGridView.Rows(cell.RowIndex).ErrorText = _
            "Zero is not a valid track"
        Return False
    ElseIf Not Integer.TryParse( _
        cell.Value.ToString(), New Integer()) Then
        cell.ErrorText = "A Track must be a number"
        songsDataGridView.Rows(cell.RowIndex).ErrorText = _
            "A Track must be a number"
        Return False
    End If
    Return True
End Function

Private Function IsDateGood(ByRef cell As DataGridViewCell) As Boolean

    If cell.Value Is Nothing Then
        cell.ErrorText = "Missing date"
        songsDataGridView.Rows(cell.RowIndex).ErrorText = _
            "Missing date"
        Return False
    Else
        Try
            DateTime.Parse(cell.Value.ToString())
        Catch ex As FormatException

            cell.ErrorText = "Invalid format"
            songsDataGridView.Rows(cell.RowIndex).ErrorText = _
                "Invalid format"

            Return False
        End Try
    End If
    Return True
End Function

Hinweise

Dieses Ereignis ist analog zum Control.Validating -Ereignis.This event is analogous to the Control.Validating event. Verwenden Sie dieses Ereignis, um die Validierung für alle Werte einer Zeile auszuführen.Use this event to perform validation on all the values of a row. Wenn die Zeile die Überprüfung nicht besteht, legen CancelEventArgs.Cancel Sie die true-Eigenschaft auf fest.If the row does not pass validation, set the CancelEventArgs.Cancel property to true. Das Abbrechen dieses Ereignisses verhindert, RowValidateddass Control.Validatingdie- Control.Validated ,-und-Ereignisse auftreten, und verhindert außerdem, dass der Benutzer die ungültige Zeile verlässt und verhindert, dass die Zeile in einer externen Datenquelle im Daten gebundenen Modus gespeichert wird.Canceling this event prevents the RowValidated, Control.Validating, and Control.Validated events from occurring, and also prevents the user from leaving the invalid row and prevents the row from being saved to an external data source in data bound mode.

Weitere Informationen zum Behandeln von Ereignissen finden Sie unter behandeln und Auslösen von Ereignissen.For more information about how to handle events, see Handling and Raising Events.

Gilt für:

Siehe auch