FlexGrid for WinForms | ComponentOne
C1.Win.C1FlexGrid Namespace / C1FlexGridBase Class / ValidateEdit Event
Example

In This Topic
    ValidateEdit Event (C1FlexGridBase)
    In This Topic
    Fires before the control exits cell edit mode, while the editor is still active.
    Syntax
    'Declaration
     
    
    Public Event ValidateEdit As ValidateEditEventHandler
    public event ValidateEditEventHandler ValidateEdit
    Event Data

    The event handler receives an argument of type ValidateEditEventArgs containing data related to this event. The following ValidateEditEventArgs properties provide information specific to this event.

    PropertyDescription
    Gets or sets a value indicating whether the edit operation should be canceled.  
    If the cell contains a checkbox, the new checkbox state about to be applied to the cell.  
    Gets the column index of the cell being edited.  
    Gets or sets a value describing a reason why validation of editor value failed.  
    Gets the row index of the cell being edited.  
    Remarks

    When this event fires, the contents of the editor have not been applied to the grid. You can validate the editor contents and cancel the edits if necessary.

    To validate the editor contents, check the value contained in the Editor.Text property. If the value is invalid for the cell, set the Cancel parameter to true and the grid will remain in edit mode until the user types a valid entry.

    For example, the code below checks to make sure the value entered is an integer between 0 and 100: void _flex_ValidateEdit(object sender, ValidateEditEventArgs e) { if (_flex.Cols[e.Col].Name = "Score") { try { int value = int.Parse(_flex.Editor.Text); if (value >= 0 && value <= 50) return; // accept edits } catch {} // error or invalid range, refuse edits e.Cancel = true; } }
    Example
    For example, the code below checks to make sure the value entered is an integer between 0 and 100:
    void _flex_ValidateEdit(object sender, ValidateEditEventArgs e)
    {
        if (_flex.Cols[e.Col].Name = "Score")
        {
            try
            {
                int value = int.Parse(_flex.Editor.Text);
                if (value >= 0 && value <= 50)
                    return; // accept edits
            }
            catch {}
        
            // error or invalid range, refuse edits
            e.Cancel = true;
        }
    }
    See Also