Esta documentación está archivada y no tiene mantenimiento.

DataGridView.CellParsing (Evento)

Se produce cuando una celda cuyo valor ha sido modificado deja de estar en modo de edición.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

public event DataGridViewCellParsingEventHandler CellParsing
/** @event */
public void add_CellParsing (DataGridViewCellParsingEventHandler value)

/** @event */
public void remove_CellParsing (DataGridViewCellParsingEventHandler value)

En JScript, se pueden controlar los eventos que define una clase, pero no se pueden definir unos propios.
No aplicable.

De manera predeterminada, el control DataGridView intentará convertir un valor especificado por el usuario, mostrado en una celda, en un valor de celda subyacente real del tipo especificado por la propiedad ValueType de la celda. Esta conversión utiliza las propiedades de formato del estilo de celda devuelto por la propiedad InheritedStyle de la celda.

Si la conversión estándar no satisface sus necesidades, controle el evento CellParsing para proporcionar una conversión de valor personalizada al tipo necesario.

El usuario puede pasar al modo de edición mediante el método especificado por la propiedad EditMode y puede salir del modo de edición confirmando los cambios realizados en una celda, desplazándose a otra celda o presionando ENTRAR. Si presiona ESC, se desharán todos los cambios realizados en el valor antes de que se confirmen y no se producirá el evento CellParsing. El evento CellParsing sólo se produce si se ha modificado realmente el valor de la celda, aunque el valor final coincida con el valor original. También se produce cuando se llama al método CommitEdit.

Al controlar el evento CellParsing, puede convertir el valor o personalizar la conversión predeterminada. Por ejemplo, puede convertir el valor mediante el método ParseFormattedValue de celda con los convertidores de tipos que elija. Como alternativa, puede dejar que los convertidores de tipos predeterminados analicen el valor, pero modificando las propiedades NullValue, DataSourceNullValue y FormatProvider del objeto devueltas por la propiedad DataGridViewCellParsingEventArgs.InheritedCellStyle, que se inicializa a través de la propiedad de celda InheritedStyle.

Al convertir el valor, debe reemplazar el valor con formato inicial de la propiedad ConvertEventArgs.Value por el valor convertido en el tipo especificado por la propiedad de celdaValueType. Para indicar que no es necesario seguir analizando, establezca la propiedad DataGridViewCellParsingEventArgs.ParsingApplied en true.

Cuando finaliza el controlador de eventos, si el valor de ConvertEventArgs.Value es referencia null (Nothing en Visual Basic) o no es del tipo correcto, o el valor de la propiedad DataGridViewCellParsingEventArgs.ParsingApplied es false, se analiza Value con el método de celda ParseFormattedValue y convertidores de tipos predeterminados. La implementación predeterminada de este método analiza el valor utilizando las propiedades NullValue, DataSourceNullValue y FormatProvider del estilo de celda pasado. Si el valor no es igual a NullValue, el valor se analiza utilizando la propiedad FormatProvider y los convertidores de tipo pasados.

Para personalizar la conversión de un valor de celda en un valor con formato para la presentación, controle el evento CellFormatting.

Para obtener más información sobre el control de eventos, vea Utilizar eventos.

En el ejemplo de código siguiente se muestra cómo controlar el evento CellParsing. También se muestra cómo utilizar la clase DataGridViewCellParsingEventArgs.

// Handling CellParsing allows one to accept user input, then map it to a different
// internal representation.
private void dataGridView1_CellParsing(object sender, DataGridViewCellParsingEventArgs e)
{
    if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Release Date")
    {
        if (e != null)
        {
            if (e.Value != null)
            {
                try
                {
                    // Map what the user typed into UTC.
                    e.Value = DateTime.Parse(e.Value.ToString()).ToUniversalTime();
                    // Set the ParsingApplied property to 
                    // Show the event is handled.
                    e.ParsingApplied = true;

                }
                catch (FormatException)
                {
                    // Set to false in case another CellParsing handler
                    // wants to try to parse this DataGridViewCellParsingEventArgs instance.
                    e.ParsingApplied = false;
                }
            }
        }
    }
}

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: