DataGridView.CellParsing Gebeurtenis
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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
- CellParsing
- OnCellParsing(DataGridViewCellParsingEventArgs)
- CommitEdit(DataGridViewDataErrorContexts)
- CellFormatting
- EditMode
- ValueType
- InheritedStyle
- ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)
- DataGridViewCellParsingEventHandler
- DataGridViewCellParsingEventArgs
- InheritedCellStyle
- ParsingApplied
- Value
- DataGridViewCellStyle
- NullValue
- Format
- FormatProvider
- Celstijlen in het Windows Forms DataGridView-besturingselement
- DataGridView Control (Windows Forms)