DataGridView.CellParsing Evento
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Ocorre quando uma célula sai do modo de edição se o valor da célula tiver sido modificado.
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
Tipo de Evento
Exemplos
O seguinte exemplo de código mostra como lidar com o CellParsing evento. Também mostra como usar a 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
Observações
Por defeito, o DataGridView controlo tentará converter um valor especificado pelo utilizador exibido numa célula num valor real subjacente da célula no tipo especificado pela propriedade da célula ValueType . Esta conversão utiliza as propriedades de formatação do estilo de célula devolvido pela propriedade da célula InheritedStyle .
Se a conversão padrão não responder às suas necessidades, trate do CellParsing evento para fornecer uma conversão personalizada de valor para o tipo necessário.
Os utilizadores podem entrar no modo de edição usando o método especificado pela EditMode propriedade, e podem sair do modo edit, comprometendo quaisquer alterações para uma célula, movendo-se para outra célula ou pressionando ENTER. Pressionar ESC reverterá quaisquer alterações ao valor antes de este ser confirmado, e o CellParsing evento não ocorrerá. O CellParsing evento ocorre apenas se o valor da célula tiver sido efetivamente modificado, mesmo que o valor final seja o mesmo do valor original. Também ocorre quando o CommitEdit método é chamado.
Quando gerir o CellParsing evento, pode converter o valor você próprio ou pode personalizar a conversão padrão. Por exemplo, pode converter o valor por si mesmo usando o método da célula ParseFormattedValue com conversores de tipos à sua escolha. Alternativamente, pode deixar os conversores de tipos padrão analisarem o valor, mas modificar o NullValue, , e FormatProvider as propriedades do objeto devolvido pela DataGridViewCellParsingEventArgs.InheritedCellStyle propriedade, que é inicializada usando a propriedade da célula InheritedStyleDataSourceNullValue.
Quando converter o valor por si próprio, substitua o valor inicial formatado da ConvertEventArgs.Value propriedade pelo valor convertido no tipo especificado pela propriedade da célula ValueType . Para indicar que não é necessária mais análise sintática, defina a DataGridViewCellParsingEventArgs.ParsingApplied propriedade para true.
Quando o gestor de eventos termina, se o ConvertEventArgs.Value for ou não do tipo correto, ou a DataGridViewCellParsingEventArgs.ParsingApplied propriedade for false, o Value é analisado usando o método da célula ParseFormattedValue com conversores de tipos por defeitonull. A implementação padrão deste método analisa o valor usando , NullValueDataSourceNullValue, e FormatProvider propriedades do estilo de célula passado. Se o valor não for igual a NullValue, o valor é analisado usando a FormatProvider propriedade e os conversores de tipos são passados.
Para personalizar a conversão de um valor de célula num valor formatado para exibição, trate do CellFormatting evento.
Para mais informações sobre como gerir eventos, consulte Gestão e Levantamento de Eventos.
Aplica-se a
Ver também
- CellParsing
- OnCellParsing(DataGridViewCellParsingEventArgs)
- CommitEdit(DataGridViewDataErrorContexts)
- CellFormatting
- EditMode
- ValueType
- InheritedStyle
- ParseFormattedValue(Object, DataGridViewCellStyle, TypeConverter, TypeConverter)
- DataGridViewCellParsingEventHandler
- DataGridViewCellParsingEventArgs
- InheritedCellStyle
- ParsingApplied
- Value
- DataGridViewCellStyle
- NullValue
- Format
- FormatProvider
- Estilos de Células no Controle DataGridView do Windows Forms
- DataGridView Control (Windows Forms)