DataGridView.CellParsing Ereignis
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Tritt auf, wenn eine Zelle den Bearbeitungsmodus verlässt, wenn der Zellwert geändert wurde.
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
Ereignistyp
Beispiele
Das folgende Codebeispiel zeigt, wie das CellParsing Ereignis behandelt wird. Außerdem wird gezeigt, wie sie die DataGridViewCellParsingEventArgs Klasse verwenden.
// 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
Hinweise
Standardmäßig versucht das DataGridView Steuerelement, einen vom Benutzer angegebenen Wert, der in einer Zelle angezeigt wird, in einen tatsächlich zugrunde liegenden Zellwert in den durch die Zelleigenschaft ValueType angegebenen Typ zu konvertieren. Diese Konvertierung verwendet die Formatierungseigenschaften der Zellenformatvorlage, die von der Zelleigenschaft InheritedStyle zurückgegeben wird.
Wenn die Standardkonvertierung Ihren Anforderungen nicht entspricht, behandeln Sie das CellParsing Ereignis, um eine konvertierung benutzerdefinierter Werte in den erforderlichen Typ bereitzustellen.
Benutzer können den Bearbeitungsmodus mithilfe der durch die EditMode Eigenschaft angegebenen Methode eingeben und den Bearbeitungsmodus verlassen, änderungen an einer Zelle übernehmen, indem sie zu einer anderen Zelle wechseln oder die EINGABETASTE drücken. Durch Drücken von ESC werden alle Änderungen am Wert zurückgesetzt, bevor ein Commit ausgeführt wird, und das CellParsing Ereignis tritt nicht auf. Das CellParsing Ereignis tritt nur auf, wenn der Zellwert tatsächlich geändert wurde, auch wenn der endgültige Wert mit dem ursprünglichen Wert identisch ist. Sie tritt auch auf, wenn die CommitEdit Methode aufgerufen wird.
Wenn Sie das CellParsing Ereignis behandeln, können Sie den Wert selbst konvertieren oder die Standardkonvertierung anpassen. Sie können z. B. den Wert selbst mithilfe der Zellmethode ParseFormattedValue mit Typkonvertern Ihrer Wahl konvertieren. Alternativ können Sie zulassen, dass die Standardtypkonverter den Wert analysieren, aber die NullValueVon der DataGridViewCellParsingEventArgs.InheritedCellStyle Eigenschaft zurückgegebenen , DataSourceNullValueund FormatProvider Eigenschaften des Objekts ändern, das mithilfe der Zelleigenschaft InheritedStyle initialisiert wird.
Wenn Sie den Wert selbst konvertieren, ersetzen Sie den ursprünglichen, formatierten Wert der ConvertEventArgs.Value Eigenschaft durch den konvertierten Wert in dem durch die Zelleigenschaft ValueType angegebenen Typ. Um anzugeben, dass keine weitere Analyse erforderlich ist, legen Sie die DataGridViewCellParsingEventArgs.ParsingApplied Eigenschaft auf true.
Wenn der Ereignishandler abgeschlossen istnull, wenn es sich ConvertEventArgs.Value um den richtigen Typ handelt oder die DataGridViewCellParsingEventArgs.ParsingApplied Eigenschaft falsenicht ist, wird die Value Analyse mithilfe der Zellmethode ParseFormattedValue mit Standardtypkonvertern ausgeführt. Die Standardimplementierung dieser Methode analysiert den Wert mithilfe des NullValueDataSourceNullValueübergebenen Zellformats und FormatProvider der Eigenschaften der übergebenen Zellenformatvorlage. Wenn der Wert nicht gleich NullValueist, wird der Wert mithilfe der FormatProvider Eigenschaft und der übergebenen Typkonverter analysiert.
Um die Konvertierung eines Zellwerts in einen formatierten Wert für die Anzeige anzupassen, behandeln Sie das CellFormatting Ereignis.
Weitere Informationen zum Behandeln von Ereignissen finden Sie unter Behandeln und Auslösen von Ereignissen.
Gilt für:
Weitere Informationen
- CellParsing
- OnCellParsing(DataGridViewCellParsingEventArgs)
- CommitEdit(DataGridViewDataErrorContexts)
- CellFormatting
- EditMode
- ValueType
- InheritedStyle
- ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)
- DataGridViewCellParsingEventHandler
- DataGridViewCellParsingEventArgs
- InheritedCellStyle
- ParsingApplied
- Value
- DataGridViewCellStyle
- NullValue
- Format
- FormatProvider
- Zellenformatvorlagen im Windows Forms DataGridView-Steuerelement
- DataGridView-Steuerelement (Windows Forms)