DataGridView.CellParsing Gebeurtenis

Definitie

Treedt op wanneer een cel de bewerkingsmodus verlaat als de celwaarde is gewijzigd.

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 

Gebeurtenistype

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de CellParsing gebeurtenis kunt afhandelen. Ook ziet u hoe u de DataGridViewCellParsingEventArgs klasse gebruikt.

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

Opmerkingen

Standaard probeert het besturingselement een door de DataGridView gebruiker opgegeven waarde te converteren die in een cel wordt weergegeven naar een werkelijke onderliggende celwaarde in het type dat is opgegeven door de celeigenschap ValueType . Deze conversie maakt gebruik van de opmaakeigenschappen van de celstijl die wordt geretourneerd door de celeigenschap InheritedStyle .

Als de standaardconversie niet aan uw behoeften voldoet, moet u de CellParsing gebeurtenis afhandelen om aangepaste waardeconversie naar het vereiste type te bieden.

Gebruikers kunnen de bewerkingsmodus inschakelen met behulp van de methode die is opgegeven door de EditMode eigenschap en kunnen de bewerkingsmodus verlaten, wijzigingen doorvoeren in een cel door naar een andere cel te gaan of door op Enter te drukken. Als u op Esc drukt, worden wijzigingen in de waarde teruggezet voordat deze wordt doorgevoerd en vindt de CellParsing gebeurtenis niet plaats. De CellParsing gebeurtenis treedt alleen op als de celwaarde daadwerkelijk is gewijzigd, zelfs als de uiteindelijke waarde gelijk is aan de oorspronkelijke waarde. Dit gebeurt ook wanneer de CommitEdit methode wordt aangeroepen.

Wanneer u de CellParsing gebeurtenis afhandelt, kunt u de waarde zelf converteren of kunt u de standaardconversie aanpassen. U kunt de waarde bijvoorbeeld zelf converteren met behulp van de celmethode ParseFormattedValue met het type conversieprogramma's van uw keuze. U kunt ook de standaardtypeconversieprogramma's de waarde laten parseren, maar de , en NullValue eigenschappen van het object wijzigen dat wordt geretourneerd door de DataSourceNullValue eigenschap, die wordt geïnitialiseerd met behulp van de celeigenschapFormatProvider. DataGridViewCellParsingEventArgs.InheritedCellStyleInheritedStyle

Wanneer u de waarde zelf converteert, vervangt u de oorspronkelijke, opgemaakte waarde van de ConvertEventArgs.Value eigenschap door de geconverteerde waarde in het type dat is opgegeven door de celeigenschap ValueType . Als u wilt aangeven dat er geen verdere parsering nodig is, stelt u de DataGridViewCellParsingEventArgs.ParsingApplied eigenschap in op true.

Wanneer de gebeurtenis-handler is voltooid, of als dit ConvertEventArgs.Value niet het juiste type is null of als de DataGridViewCellParsingEventArgs.ParsingApplied eigenschap is, wordt falsede Value eigenschap geparseerd met behulp van de celmethode ParseFormattedValue met standaardtypeconversieprogramma's. De standaard implementatie van deze methode parseert de waarde met behulp van de NullValue, DataSourceNullValueen FormatProvider eigenschappen van de celstijl die is doorgegeven. Als de waarde niet gelijk is aan NullValue, wordt de waarde geparseerd met behulp van de FormatProvider eigenschap en de typeconversieprogramma's die worden doorgegeven.

Als u de conversie van een celwaarde wilt aanpassen in een opgemaakte waarde voor weergave, verwerkt u de CellFormatting gebeurtenis.

Zie Gebeurtenissen verwerken en genereren voor meer informatie over het afhandelen van gebeurtenissen.

Van toepassing op

Zie ook