DataGridView.CellParsing Événement
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.
Se produit lorsqu’une cellule quitte le mode d’é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 valeur de cellule sous-jacente réelle dans le 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 vers le 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, valider les modifications apportées à une cellule, en se déplaçant vers une autre cellule ou en appuyant sur Entrée. L’appui sur Échap rétablit les modifications apportées à la valeur avant qu’elle ne soit validée, et l’événement CellParsing ne se produit pas. L’événement CellParsing se produit uniquement si la valeur de 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 de cellule ParseFormattedValue avec des convertisseurs de type de votre choix. Vous pouvez également laisser les convertisseurs de type par défaut analyser la valeur, mais modifier les propriétés de l’objet retourné par la DataGridViewCellParsingEventArgs.InheritedCellStyle propriété, qui est initialisée à l’aide de la propriété de celluleInheritedStyle.FormatProviderDataSourceNullValueNullValue
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 DataGridViewCellParsingEventArgs.ParsingApplied propriété sur true.
Lorsque le gestionnaire d’événements est terminé, si le ConvertEventArgs.Value type est null ou n’est pas correct, ou si la propriété est , elle ValueDataGridViewCellParsingEventArgs.ParsingApplied est falseanalysée à l’aide de la méthode de cellule ParseFormattedValue avec des convertisseurs de type par défaut. L’implémentation par défaut de cette méthode analyse la valeur à l’aide du NullValuestyle DataSourceNullValuede cellule, et FormatProvider les propriétés 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 gestion des événements, consultez Gestion et déclenchement d’événements.
S’applique à
Voir aussi
- CellParsing
- OnCellParsing(DataGridViewCellParsingEventArgs)
- CommitEdit(DataGridViewDataErrorContexts)
- CellFormatting
- EditMode
- ValueType
- InheritedStyle
- ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)
- DataGridViewCellParsingEventHandler
- DataGridViewCellParsingEventArgs
- InheritedCellStyle
- ParsingApplied
- Value
- DataGridViewCellStyle
- NullValue
- Format
- FormatProvider
- Styles de cellule dans le contrôle DataGridView Windows Forms
- DataGridView Control (Windows Forms)