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 ein, wenn eine Zelle den Bearbeitungsmodus verlässt und 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 die DataGridViewCellParsingEventArgs -Klasse verwendet wird.
// 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 Steuerelement, einen benutzerdefinierten Wert, der DataGridView in einer Zelle angezeigt wird, in einen tatsächlich zugrunde liegenden Zellwert in den von der Zelleigenschaft ValueType angegebenen Typ zu konvertieren. Bei dieser Konvertierung werden die Formatierungseigenschaften des von der Zelleigenschaft InheritedStyle zurückgegebenen Zellformats verwendet.
Wenn die Standardkonvertierung Nicht Ihren Anforderungen entspricht, behandeln Sie das Ereignis, um eine CellParsing benutzerdefinierte Wertkonvertierung in den erforderlichen Typ bereitzustellen.
Benutzer können mit der von der -Eigenschaft angegebenen Methode in den EditMode Bearbeitungsmodus wechseln und den Bearbeitungsmodus verlassen und alle Änderungen an einer Zelle festlegen, indem sie in eine andere Zelle wechseln oder die EINGABETASTE drücken. Durch Drücken von ESC werden alle Änderungen am Wert rückgängig machen, bevor ein Commit durchgefü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. Es 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. Beispielsweise können Sie den Wert selbst mit der Zellmethode ParseFormattedValue mit Typkonvertern Ihrer Wahl konvertieren. Alternativ können Sie den Wert von den Standardtypkonvertern analysieren lassen, aber die NullValueEigenschaften , DataSourceNullValueund FormatProvider des Von der DataGridViewCellParsingEventArgs.InheritedCellStyle -Eigenschaft zurückgegebenen Objekts ändern, das mithilfe der Zelleigenschaft InheritedStyle initialisiert wird.
Wenn Sie den Wert selbst konvertieren, ersetzen Sie den anfänglichen, formatierten Wert der ConvertEventArgs.Value Eigenschaft durch den konvertierten Wert des typs, der durch die Zelleigenschaft ValueType angegeben wird. Um anzugeben, dass keine weitere Analyse erforderlich ist, legen Sie die DataGridViewCellParsingEventArgs.ParsingApplied -Eigenschaft auf fest true
.
Wenn der Ereignishandler abgeschlossen ist, wenn der ConvertEventArgs.Value oder nicht vom richtigen Typ ist null
oder nicht vom richtigen Typ ist oder die DataGridViewCellParsingEventArgs.ParsingApplied Eigenschaft ist false
, wird der Value mit der Zellmethode ParseFormattedValue mit Standardtypkonvertern analysiert. Die Standardimplementierung dieser Methode analysiert den Wert mithilfe der NullValueEigenschaften , DataSourceNullValueund FormatProvider des übergebenen Zellformats. Wenn der Wert nicht gleich NullValueist, wird der Wert mit der -Eigenschaft und den FormatProvider übergebenen Typkonvertern 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
- Zellstile im DataGridView-Steuerelement in Windows Forms
- DataGridView-Steuerelement (Windows Forms)