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.Occurs when a cell leaves edit mode if the cell value has been modified.

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 

Exemples

L’exemple de code suivant montre comment gérer l’événement CellParsing.The following code example shows how to handle the CellParsing event. Il montre également comment utiliser la classe DataGridViewCellParsingEventArgs.It also shows how to use the DataGridViewCellParsingEventArgs class.

// 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 contrôle DataGridView 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 dans le type spécifié par la propriété ValueType.By default, the DataGridView control will attempt to convert a user-specified value displayed in a cell to an actual underlying cell value in the type specified by the cell ValueType property. Cette conversion utilise les propriétés de mise en forme du style de cellule retourné par la propriété InheritedStyle.This conversion uses the formatting properties of the cell style returned by the cell InheritedStyle property.

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.If the standard conversion does not meet your needs, handle the CellParsing event to provide custom value conversion to the required type.

Les utilisateurs peuvent entrer en mode édition à l’aide de la méthode spécifiée par la propriété EditMode, et peuvent conserver le mode édition, en validant les modifications apportées à une cellule, en déplaçant vers une autre cellule ou en appuyant sur entrée.Users can enter edit mode using the method specified by the EditMode property, and can leave edit mode, committing any changes to a cell, by moving to another cell or by pressing ENTER. En appuyant sur ÉCHAP, vous annulez toutes les modifications apportées à la valeur avant qu’elle ne soit validée, et l’événement CellParsing ne se produira pas.Pressing ESC will revert any changes to the value before it is committed, and the CellParsing event will not occur. L’événement CellParsing se produit uniquement si la valeur de la cellule a réellement été modifiée, même si la valeur finale est identique à la valeur d’origine.The CellParsing event occurs only if the cell value has actually been modified, even if the final value is the same as the original value. Elle se produit également lorsque la méthode CommitEdit est appelée.It also occurs when the CommitEdit method is called.

Lorsque vous gérez l’événement CellParsing, vous pouvez convertir la valeur vous-même ou vous pouvez personnaliser la conversion par défaut.When you handle the CellParsing event, you can convert the value yourself or you can customize the default conversion. Par exemple, vous pouvez convertir la valeur vous-même à l’aide de la méthode de la cellule ParseFormattedValue avec les convertisseurs de type de votre choix.For example, you can convert the value yourself using the cell ParseFormattedValue method with type converters of your choosing. Vous pouvez également laisser les convertisseurs de type par défaut analyser la valeur, mais modifier les propriétés NullValue, DataSourceNullValue et FormatProvider de l’objet retourné par la propriété DataGridViewCellParsingEventArgs.InheritedCellStyle, qui est initialisée à l’aide de la propriété InheritedStyle de la cellule.Alternatively, you can let the default type converters parse the value, but modify the NullValue, DataSourceNullValue, and FormatProvider properties of the object returned by the DataGridViewCellParsingEventArgs.InheritedCellStyle property, which is initialized using the cell InheritedStyle property.

Lorsque vous convertissez la valeur vous-même, remplacez la valeur initiale mise en forme de la propriété ConvertEventArgs.Value par la valeur convertie dans le type spécifié par la propriété ValueType de la cellule.When you convert the value yourself, replace the initial, formatted value of the ConvertEventArgs.Value property with the converted value in the type specified by the cell ValueType property. Pour indiquer qu’aucune analyse supplémentaire n’est nécessaire, définissez la propriété DataGridViewCellParsingEventArgs.ParsingApplied sur true.To indicate that no further parsing is necessary, set the DataGridViewCellParsingEventArgs.ParsingApplied property to true.

Quand le gestionnaire d’événements se termine, si le ConvertEventArgs.Value est null ou n’est pas du type correct, ou si la propriété DataGridViewCellParsingEventArgs.ParsingApplied est false, le Value est analysé à l’aide de la méthode ParseFormattedValue avec les convertisseurs de type par défaut.When the event handler completes, if the ConvertEventArgs.Value is null or is not of the correct type, or the DataGridViewCellParsingEventArgs.ParsingApplied property is false, the Value is parsed using the cell ParseFormattedValue method with default type converters. L’implémentation par défaut de cette méthode analyse la valeur à l’aide des propriétés NullValue, DataSourceNullValue et FormatProvider du style de cellule passé.The default implementation of this method parses the value using the NullValue, DataSourceNullValue, and FormatProvider properties of the cell style passed in. Si la valeur n’est pas égale à NullValue, la valeur est analysée à l’aide de la propriété FormatProvider et des convertisseurs de type passés.If the value is not equal to NullValue, the value is parsed using the FormatProvider property and the type converters passed in.

Pour personnaliser la conversion d’une valeur de cellule en une valeur mise en forme pour l’affichage, gérez l’événement CellFormatting.To customize the conversion of a cell value into a formatted value for display, handle the CellFormatting event.

Pour plus d’informations sur la façon de gérer les événements, consultez gestion et déclenchement d’événements.For more information about how to handle events, see Handling and Raising Events.

S’applique à

Voir aussi