DataGridView.RowValidating Olay

Tanım

Bir satır doğrulandığında gerçekleşir.

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

Olay Türü

Örnekler

Aşağıdaki kod örneği, geçerli izleme ve yayın tarihlerinin girilip girilip girmediğini denetlemek için kullanır RowValidating .

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;
}

Açıklamalar

Bu olay olaya benzer Control.Validating . Bir satırın tüm değerleri üzerinde doğrulama gerçekleştirmek için bu olayı kullanın. Satır doğrulamayı geçmezse özelliğini olarak trueayarlayınCancelEventArgs.Cancel. Bu olayı iptal etmek , Control.Validatingve Control.Validated olaylarının RowValidatedoluşmasını engeller ve ayrıca kullanıcının geçersiz satırı bırakmasını ve satırın veri bağlama modunda bir dış veri kaynağına kaydedilmesini engeller.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ürün Sürümler
.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

Ayrıca bkz.