Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este tema aún no ha recibido ninguna valoración - Valorar este tema

DataGridViewCellFormattingEventHandler (Delegado)

Representa el método que controlará el evento CellFormatting de DataGridView.

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

public delegate void DataGridViewCellFormattingEventHandler (
	Object sender,
	DataGridViewCellFormattingEventArgs e
)
/** @delegate */
public delegate void DataGridViewCellFormattingEventHandler (
	Object sender, 
	DataGridViewCellFormattingEventArgs e
)
No aplicable.

Parámetros

sender

Origen del evento.

e

DataGridViewCellFormattingEventArgs que contiene los datos del evento.

Controle el evento CellFormatting para personalizar la conversión de un valor de celda en un formato apropiado para mostrar o personalizar el aspecto de una celda dependiendo de su estado o valor.

El evento CellFormatting se produce siempre que se pinta una celda; por tanto, debe evitar procesamientos largos al controlar este evento. El evento también se produce cuando se recupera el valor FormattedValue de la celda o se llama a su método GetFormattedValue.

Cuando se controla el evento CellFormatting, la propiedad ConvertEventArgs.Value se inicializa con el valor de la celda. Si proporciona conversión personalizada del valor de celda al valor de presentación, establezca la propiedad ConvertEventArgs.Value en el valor convertido, garantizando así que el nuevo valor es del tipo especificado por la propiedad FormattedValueType de la celda. Para indicar que no es necesario realizar más operaciones de formato en el valor, establezca la propiedad DataGridViewCellFormattingEventArgs.FormattingApplied en true.

Cuando finaliza el controlador de eventos, si ConvertEventArgs.Value es referencia null (Nothing en Visual Basic), o no es del tipo correcto; o bien, la propiedad DataGridViewCellFormattingEventArgs.FormattingApplied es false, se aplica formato a Value utilizando las propiedades Format, NullValue, DataSourceNullValue y FormatProvider del estilo de celda devuelto por la propiedad DataGridViewCellFormattingEventArgs.CellStyle, que se inicializa utilizando la propiedad de celda InheritedStyle.

Independientemente del valor de la propiedad DataGridViewCellFormattingEventArgs.FormattingApplied, para representar la celda se utilizan las propiedades de presentación del objeto devueltas por la propiedad DataGridViewCellFormattingEventArgs.CellStyle.

Para obtener más información sobre el formato personalizado mediante el evento CellFormatting, vea Cómo: Personalizar el formato de los datos en el control DataGridView de formularios Windows Forms.

Para evitar reducciones del rendimiento al controlar este evento, obtenga acceso a la celda a través de los parámetros del controlador de eventos en lugar de hacerlo directamente.

Para personalizar la conversión de un valor con formato especificado por el usuario en un valor de celda real, controle el evento CellParsing.

Para obtener más información sobre la forma de controlar eventos, vea Utilizar eventos.

Cuando se crea un delegado de DataGridViewCellFormattingEventHandler, se identifica el método que controlará el evento. Para asociar el evento al controlador de eventos, se debe agregar una instancia del delegado al evento. Siempre que se produzca el evento, se llama a su controlador, a menos que se quite el delegado. Para obtener más información sobre los delegados de controladores de eventos, vea Eventos y delegados.

En el ejemplo de código siguiente se muestra cómo controlar el evento CellFormatting.

private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    // If the column is the Artist column, check the
    // value.
    if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Artist")
    {
        if (e.Value != null)
        {
            // Check for the string "pink" in the cell.
            string stringValue = (string)e.Value;
            stringValue = stringValue.ToLower();
            if ((stringValue.IndexOf("pink") > -1))
            {
                e.CellStyle.BackColor = Color.Pink;
            }

        }
    }
    else if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Release Date")
    {
        ShortFormDateFormat(e);
    }
}

//Even though the date internaly stores the year as YYYY, using formatting, the
//UI can have the format in YY.  
private static void ShortFormDateFormat(DataGridViewCellFormattingEventArgs formatting)
{
    if (formatting.Value != null)
    {
        try
        {
            System.Text.StringBuilder dateString = new System.Text.StringBuilder();
            DateTime theDate = DateTime.Parse(formatting.Value.ToString());

            dateString.Append(theDate.Month);
            dateString.Append("/");
            dateString.Append(theDate.Day);
            dateString.Append("/");
            dateString.Append(theDate.Year.ToString().Substring(2));
            formatting.Value = dateString.ToString();
            formatting.FormattingApplied = true;
        }
        catch (FormatException)
        {
            // Set to false in case there are other handlers interested trying to
            // format this DataGridViewCellFormattingEventArgs instance.
            formatting.FormattingApplied = false;
        }
    }
}

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, 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
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.