DataGridViewCellFormattingEventArgs Classe

Définition

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
DataGridViewCellFormattingEventArgs

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 falsela 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