System.Windows.Forms.DataGridView.CellParsing Event

Occurs when a cell leaves edit mode if the cell value has been modified.

Syntax

public event DataGridViewCellParsingEventHandler CellParsing

Remarks

By default, the System.Windows.Forms.DataGridView control will attempt to convert a user-specified value displayed in a cell to an actual underlying cell value in the type specified by the cell DataGridViewCell.ValueType property. This conversion uses the formatting properties of the cell style returned by the cell DataGridViewCell.InheritedStyle property.

If the standard conversion does not meet your needs, handle the DataGridView.CellParsing event to provide custom value conversion to the required type.

Users can enter edit mode using the method specified by the DataGridView.EditMode property, and can leave edit mode, committing any changes to a cell, by moving to another cell or by pressing ENTER. Pressing ESC will revert any changes to the value before it is committed, and the DataGridView.CellParsing event will not occur. The DataGridView.CellParsing event occurs only if the cell value has actually been modified, even if the final value is the same as the original value. It also occurs when the DataGridView.CommitEdit(DataGridViewDataErrorContexts) method is called.

When you handle the DataGridView.CellParsing event, you can convert the value yourself or you can customize the default conversion. For example, you can convert the value yourself using the cell DataGridViewCell.ParseFormattedValue(object, DataGridViewCellStyle, System.ComponentModel.TypeConverter, System.ComponentModel.TypeConverter) method with type converters of your choosing. Alternatively, you can let the default type converters parse the value, but modify the DataGridViewCellStyle.NullValue, DataGridViewCellStyle.DataSourceNullValue, and DataGridViewCellStyle.FormatProvider properties of the object returned by the DataGridViewCellParsingEventArgs.InheritedCellStyle property, which is initialized using the cell DataGridViewCell.InheritedStyle property.

When you convert the value yourself, replace the initial, formatted value of the ConvertEventArgs.Value property with the converted value in the type specified by the cell DataGridViewCell.ValueType property. To indicate that no further parsing is necessary, set the DataGridViewCellParsingEventArgs.ParsingApplied property to true.

When the event handler completes, if the ConvertEventArgs.Value is null or is not of the correct type, or the DataGridViewCellParsingEventArgs.ParsingApplied property is false, the ConvertEventArgs.Value is parsed using the cell DataGridViewCell.ParseFormattedValue(object, DataGridViewCellStyle, System.ComponentModel.TypeConverter, System.ComponentModel.TypeConverter) method with default type converters. The default implementation of this method parses the value using the DataGridViewCellStyle.NullValue, DataGridViewCellStyle.DataSourceNullValue, and DataGridViewCellStyle.FormatProvider properties of the cell style passed in. If the value is not equal to DataGridViewCellStyle.NullValue, the value is parsed using the DataGridViewCellStyle.FormatProvider property and the type converters passed in.

To customize the conversion of a cell value into a formatted value for display, handle the DataGridView.CellFormatting event.

For more information about handling events, see Consuming Events.

Requirements

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
Assembly Versions: 2.0.0.0
Since: .NET 2.0