DataGridView.CellParsing Événement

Définition

Se produit lorsqu'une cellule quitte le mode édition si la valeur de la cellule a été modifiée.

public:
 event System::Windows::Forms::DataGridViewCellParsingEventHandler ^ CellParsing;
public event System.Windows.Forms.DataGridViewCellParsingEventHandler CellParsing;
public event System.Windows.Forms.DataGridViewCellParsingEventHandler? CellParsing;
member this.CellParsing : System.Windows.Forms.DataGridViewCellParsingEventHandler 
Public Custom Event CellParsing As DataGridViewCellParsingEventHandler 

Type d'événement

Exemples

L’exemple de code suivant montre comment gérer l’événement CellParsing . Il montre également comment utiliser la DataGridViewCellParsingEventArgs classe .

// Handling CellParsing allows one to accept user input, then map it to a different
// internal representation.
void dataGridView1_CellParsing( Object^ /*sender*/, DataGridViewCellParsingEventArgs^ e )
{
   if ( this->dataGridView1->Columns[ e->ColumnIndex ]->Name->Equals( "Release Date" ) )
   {
      if ( e != nullptr )
      {
         if ( e->Value != nullptr )
         {
            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^ /*ex*/ ) 
            {
               // Set to false in case another CellParsing handler
               // wants to try to parse this DataGridViewCellParsingEventArgs instance.
               e->ParsingApplied = false;
            }
         }
      }
   }
}
// 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;
                }
            }
        }
    }
}
' Handling CellParsing allows one to accept user input, then map it to a different
' internal representation.
Private Sub dataGridView1_CellParsing(ByVal sender As Object, _
    ByVal e As DataGridViewCellParsingEventArgs) _
    Handles dataGridView1.CellParsing

    If Me.dataGridView1.Columns(e.ColumnIndex).Name = _
        "Release Date" Then
        If e IsNot Nothing Then
            If e.Value IsNot Nothing Then
                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 ex As FormatException
                    ' Set to false in case another CellParsing handler
                    ' wants to try to parse this DataGridViewCellParsingEventArgs instance.
                    e.ParsingApplied = False
                End Try
            End If
        End If
    End If
End Sub

Remarques

Par défaut, le DataGridView contrôle tente de convertir une valeur spécifiée par l’utilisateur affichée dans une cellule en une valeur de cellule sous-jacente réelle du type spécifié par la propriété de cellule ValueType . Cette conversion utilise les propriétés de mise en forme du style de cellule retourné par la propriété de cellule InheritedStyle .

Si la conversion standard ne répond pas à vos besoins, gérez l’événement CellParsing pour fournir une conversion de valeur personnalisée au type requis.

Les utilisateurs peuvent entrer en mode d’édition à l’aide de la méthode spécifiée par la propriété et peuvent quitter le EditMode mode d’édition, en commitant les modifications apportées à une cellule, en se déplaçant vers une autre cellule ou en appuyant sur ENTRÉE. Le fait d’appuyer sur Échap rétablit les modifications apportées à la valeur avant qu’elle ne soit validée, et l’événement CellParsing ne se produira pas. L’événement CellParsing se produit uniquement si la valeur de la cellule a été réellement modifiée, même si la valeur finale est identique à la valeur d’origine. Elle se produit également lorsque la CommitEdit méthode est appelée.

Lorsque vous gérez l’événement CellParsing , vous pouvez convertir la valeur vous-même ou personnaliser la conversion par défaut. Par exemple, vous pouvez convertir la valeur vous-même à l’aide de la méthode cell ParseFormattedValue avec les convertisseurs de type de votre choix. Vous pouvez également laisser les convertisseurs de type par défaut analyser la valeur, mais modifier les NullValuepropriétés , DataSourceNullValueet FormatProvider de l’objet retourné par la DataGridViewCellParsingEventArgs.InheritedCellStyle propriété, qui est initialisée à l’aide de la propriété de cellule InheritedStyle .

Lorsque vous convertissez la valeur vous-même, remplacez la valeur initiale mise en forme de la ConvertEventArgs.Value propriété par la valeur convertie dans le type spécifié par la propriété de cellule ValueType . Pour indiquer qu’aucune analyse supplémentaire n’est nécessaire, définissez la propriété sur DataGridViewCellParsingEventArgs.ParsingAppliedtrue.

Une fois le gestionnaire d’événements terminé, si le ConvertEventArgs.Value est ou n’est null pas du type correct ou si la propriété est false, le DataGridViewCellParsingEventArgs.ParsingApplied est analysé à l’aide de Value la méthode de cellule ParseFormattedValue avec les convertisseurs de type par défaut. L’implémentation par défaut de cette méthode analyse la valeur à l’aide NullValuedes propriétés , DataSourceNullValueet FormatProvider du style de cellule transmis. Si la valeur n’est pas égale à , la valeur est analysée à NullValuel’aide de la FormatProvider propriété et des convertisseurs de type transmis.

Pour personnaliser la conversion d’une valeur de cellule en valeur mise en forme pour l’affichage, gérez l’événement CellFormatting .

Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.

S’applique à

Voir aussi