DataGridViewCellFormattingEventArgs Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des données pour l'événement 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
- Héritage
Exemples
L’exemple de code suivant montre comment gérer 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
Remarques
Gérez l’événement CellFormatting pour personnaliser la conversion d’une valeur de cellule dans un format adapté à l’affichage ou pour personnaliser l’apparence d’une cellule en fonction de son état ou de sa valeur.
L’événement CellFormatting se produit chaque fois que chaque cellule est peinte. Vous devez donc éviter un traitement long lors de la gestion de cet événement. Cet événement se produit également lorsque la cellule FormattedValue est récupérée ou que sa GetFormattedValue méthode est appelée.
Lorsque vous gérez l’événement CellFormatting , la ConvertEventArgs.Value propriété est initialisée avec la valeur de cellule. Si vous fournissez une conversion personnalisée de la valeur de cellule en valeur d’affichage, définissez la ConvertEventArgs.Value propriété sur la valeur convertie, en vous assurant que la nouvelle valeur est du type spécifié par la propriété de cellule FormattedValueType . Pour indiquer qu’aucune autre mise en forme de valeur n’est nécessaire, définissez la propriété sur DataGridViewCellFormattingEventArgs.FormattingAppliedtrue
.
Lorsque le gestionnaire d’événements se termine, si est ConvertEventArgs.Valuenull
ou n’est pas du type correct, ou si la propriété a false
la DataGridViewCellFormattingEventArgs.FormattingApplied valeur , le Value est mis en forme à l’aide Formatdes propriétés , NullValue, DataSourceNullValueet FormatProvider du style de cellule retourné par la DataGridViewCellFormattingEventArgs.CellStyle propriété , qui est initialisée à l’aide de la propriété de celluleInheritedStyle.
Quelle que soit la valeur de la DataGridViewCellFormattingEventArgs.FormattingApplied propriété, les propriétés d’affichage de l’objet retourné par la DataGridViewCellFormattingEventArgs.CellStyle propriété sont utilisées pour afficher la cellule.
Pour plus d’informations sur la mise en forme personnalisée à l’aide de l’événementCellFormatting, consultez How to: Customize Data Formatting in the Windows Forms DataGridView Control.
Pour éviter des pénalités de performances lors de la gestion de cet événement, accédez à la cellule via les paramètres du gestionnaire d’événements plutôt que d’accéder directement à la cellule.
Pour personnaliser la conversion d’une valeur mise en forme spécifiée par l’utilisateur en valeur de cellule réelle, gérez l’événement CellParsing .
Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.
Constructeurs
DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle) |
Initialise une nouvelle instance de la classe DataGridViewCellFormattingEventArgs. |
Propriétés
CellStyle |
Obtient ou définit le style de la cellule en cours de mise en forme. |
ColumnIndex |
Obtient l'index de colonne de la cellule en cours de mise en forme. |
DesiredType |
Obtient le type de données de la valeur souhaitée. (Hérité de ConvertEventArgs) |
FormattingApplied |
Obtient ou définit une valeur indiquant si la valeur de cellule a été mise en forme avec succès. |
RowIndex |
Obtient l'index de ligne de la cellule en cours de mise en forme. |
Value |
Obtient ou définit la valeur du ConvertEventArgs. (Hérité de ConvertEventArgs) |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
S’applique à
Voir aussi
- 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
- Styles de cellules dans le contrôle DataGridView Windows Forms
- Guide pratique pour personnaliser la mise en forme des données dans le contrôle DataGridView Windows Forms
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour