DataGridViewCellFormattingEventArgs Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Proporciona datos para el evento CellFormatting de DataGridView.
public ref class DataGridViewCellFormattingEventArgs : System::Windows::Forms::ConvertEventArgs
public class DataGridViewCellFormattingEventArgs : System.Windows.Forms.ConvertEventArgs
type DataGridViewCellFormattingEventArgs = class
inherit ConvertEventArgs
Public Class DataGridViewCellFormattingEventArgs
Inherits ConvertEventArgs
- Herencia
Ejemplos
En el ejemplo de código siguiente se muestra cómo controlar CellFormatting.
void dataGridView1_CellFormatting( Object^ /*sender*/, DataGridViewCellFormattingEventArgs^ e )
{
// If the column is the Artist column, check the
// value.
if ( this->dataGridView1->Columns[ e->ColumnIndex ]->Name->Equals( "Artist" ) )
{
if ( e->Value != nullptr )
{
// Check for the string "pink" in the cell.
String^ stringValue = dynamic_cast<String^>(e->Value);
stringValue = stringValue->ToLower();
if ( (stringValue->IndexOf( "pink" ) > -1) )
{
DataGridViewCellStyle^ pinkStyle = gcnew DataGridViewCellStyle;
//Change the style of the cell.
pinkStyle->BackColor = Color::Pink;
pinkStyle->ForeColor = Color::Black;
pinkStyle->Font = gcnew System::Drawing::Font( "Times New Roman",8,FontStyle::Bold );
e->CellStyle = pinkStyle;
}
}
}
else
if ( this->dataGridView1->Columns[ e->ColumnIndex ]->Name->Equals( "Release Date" ) )
{
ShortFormDateFormat( e );
}
}
//Even though the date internaly stores the year as YYYY, using formatting, the
//UI can have the format in YY.
void ShortFormDateFormat( DataGridViewCellFormattingEventArgs^ formatting )
{
if ( formatting->Value != nullptr )
{
try
{
System::Text::StringBuilder^ dateString = gcnew 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 ( Exception^ /*notInDateFormat*/ )
{
// Set to false in case there are other handlers interested trying to
// format this DataGridViewCellFormattingEventArgs instance.
formatting->FormattingApplied = false;
}
}
}
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;
}
}
}
Private Sub dataGridView1_CellFormatting(ByVal sender As Object, _
ByVal e As DataGridViewCellFormattingEventArgs) _
Handles dataGridView1.CellFormatting
' If the column is the Artist column, check the
' value.
If Me.dataGridView1.Columns(e.ColumnIndex).Name _
= "Artist" Then
If e.Value IsNot Nothing Then
' Check for the string "pink" in the cell.
Dim stringValue As String = _
CType(e.Value, String)
stringValue = stringValue.ToLower()
If ((stringValue.IndexOf("pink") > -1)) Then
e.CellStyle.BackColor = Color.Pink
End If
End If
ElseIf Me.dataGridView1.Columns(e.ColumnIndex).Name _
= "Release Date" Then
ShortFormDateFormat(e)
End If
End Sub
'Even though the date internaly stores the year as YYYY, using formatting, the
'UI can have the format in YY.
Private Shared Sub ShortFormDateFormat(ByVal formatting As DataGridViewCellFormattingEventArgs)
If formatting.Value IsNot Nothing Then
Try
Dim dateString As System.Text.StringBuilder = New System.Text.StringBuilder()
Dim theDate As Date = 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 notInDateFormat As FormatException
' Set to false in case there are other handlers interested trying to
' format this DataGridViewCellFormattingEventArgs instance.
formatting.FormattingApplied = False
End Try
End If
End Sub
Comentarios
Controle el CellFormatting evento para personalizar la conversión de un valor de celda en un formato adecuado para mostrar o personalizar la apariencia de una celda según su estado o valor.
El CellFormatting evento se produce cada vez que se pinta cada celda, por lo que debe evitar un procesamiento prolongado al controlar este evento. Este evento también se produce cuando se recupera la celda FormattedValue o se llama a su GetFormattedValue método.
Al controlar el CellFormatting evento, la ConvertEventArgs.Value propiedad se inicializa con el valor de celda. Si proporciona una conversión personalizada del valor de celda al valor para mostrar, establezca la ConvertEventArgs.Value propiedad en el valor convertido, asegurándose de que el nuevo valor es del tipo especificado por la propiedad cell FormattedValueType . Para indicar que no se necesita ningún formato de valor adicional, establezca la DataGridViewCellFormattingEventArgs.FormattingApplied propiedad true
en .
Cuando se completa el controlador de eventos, si ConvertEventArgs.Value es null
o no es del tipo correcto, o la DataGridViewCellFormattingEventArgs.FormattingApplied propiedad es false
, Value se da formato mediante las Formatpropiedades , NullValue, DataSourceNullValuey FormatProvider del estilo de celda devuelto por la DataGridViewCellFormattingEventArgs.CellStyle propiedad , que se inicializa mediante la propiedad cell InheritedStyle .
Independientemente del valor de la DataGridViewCellFormattingEventArgs.FormattingApplied propiedad, las propiedades para mostrar del objeto devuelto por la DataGridViewCellFormattingEventArgs.CellStyle propiedad se usan para representar la celda.
Para obtener más información sobre el formato personalizado mediante el CellFormatting evento , vea How to: Customize Data Format in the Windows Forms DataGridView Control.
Para evitar penalizaciones de rendimiento al controlar este evento, acceda a la celda a través de los parámetros del controlador de eventos en lugar de acceder directamente a la celda.
Para personalizar la conversión de un valor con formato especificado por el usuario en un valor de celda real, controle el CellParsing evento.
Para obtener más información acerca de cómo controlar eventos, vea controlar y provocar eventos.
Constructores
DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle) |
Inicializa una nueva instancia de la clase DataGridViewCellFormattingEventArgs. |
Propiedades
CellStyle |
Obtiene o establece el estilo de la celda a la que se va a dar formato. |
ColumnIndex |
Obtiene el índice de columna de la celda a la que se va a aplicar formato. |
DesiredType |
Obtiene el tipo de datos del valor deseado. (Heredado de ConvertEventArgs) |
FormattingApplied |
Obtiene o establece un valor que indica si se ha aplicado correctamente el formato al valor de la celda. |
RowIndex |
Obtiene el índice de fila de la celda a la que se va a aplicar formato. |
Value |
Obtiene o establece el valor de ConvertEventArgs. (Heredado de ConvertEventArgs) |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Se aplica a
Consulte también
- DataGridView
- CellFormatting
- CellParsing
- DefaultCellStyle
- OnCellFormatting(DataGridViewCellFormattingEventArgs)
- DataGridViewCellStyle
- Format
- FormatProvider
- NullValue
- DataSourceNullValue
- InheritedStyle
- Value
- FormattedValue
- FormattedValueType
- GetFormattedValue(Object, Int32, DataGridViewCellStyle, TypeConverter, TypeConverter, DataGridViewDataErrorContexts)
- DataGridViewCellFormattingEventHandler
- FormattingApplied
- CellStyle
- Value
- Estilos de celda en el control DataGridView de formularios Windows Forms
- Personalizar el formato de los datos en el control DataGridView de formularios Windows Forms