DataGridViewCellFormattingEventArgs Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Fornisce i dati per l'evento CellFormatting di una classeDataGridView.
public ref class DataGridViewCellFormattingEventArgs : System::Windows::Forms::ConvertEventArgs
public class DataGridViewCellFormattingEventArgs : System.Windows.Forms.ConvertEventArgs
type DataGridViewCellFormattingEventArgs = class
inherit ConvertEventArgs
Public Class DataGridViewCellFormattingEventArgs
Inherits ConvertEventArgs
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene illustrato come gestire CellFormatting.
void dataGridView1_CellFormatting( Object^ /*sender*/, DataGridViewCellFormattingEventArgs^ e )
{
// If the column is the Artist column, check the
// value.
if ( this->dataGridView1->Columns[ e->ColumnIndex ]->Name->Equals( "Artist" ) )
{
if ( e->Value != nullptr )
{
// Check for the string "pink" in the cell.
String^ stringValue = dynamic_cast<String^>(e->Value);
stringValue = stringValue->ToLower();
if ( (stringValue->IndexOf( "pink" ) > -1) )
{
DataGridViewCellStyle^ pinkStyle = gcnew DataGridViewCellStyle;
//Change the style of the cell.
pinkStyle->BackColor = Color::Pink;
pinkStyle->ForeColor = Color::Black;
pinkStyle->Font = gcnew System::Drawing::Font( "Times New Roman",8,FontStyle::Bold );
e->CellStyle = pinkStyle;
}
}
}
else
if ( this->dataGridView1->Columns[ e->ColumnIndex ]->Name->Equals( "Release Date" ) )
{
ShortFormDateFormat( e );
}
}
//Even though the date internaly stores the year as YYYY, using formatting, the
//UI can have the format in YY.
void ShortFormDateFormat( DataGridViewCellFormattingEventArgs^ formatting )
{
if ( formatting->Value != nullptr )
{
try
{
System::Text::StringBuilder^ dateString = gcnew System::Text::StringBuilder;
DateTime theDate = DateTime::Parse( formatting->Value->ToString() );
dateString->Append( theDate.Month );
dateString->Append( "/" );
dateString->Append( theDate.Day );
dateString->Append( "/" );
dateString->Append( theDate.Year.ToString()->Substring( 2 ) );
formatting->Value = dateString->ToString();
formatting->FormattingApplied = true;
}
catch ( Exception^ /*notInDateFormat*/ )
{
// Set to false in case there are other handlers interested trying to
// format this DataGridViewCellFormattingEventArgs instance.
formatting->FormattingApplied = false;
}
}
}
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
// If the column is the Artist column, check the
// value.
if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Artist")
{
if (e.Value != null)
{
// Check for the string "pink" in the cell.
string stringValue = (string)e.Value;
stringValue = stringValue.ToLower();
if ((stringValue.IndexOf("pink") > -1))
{
e.CellStyle.BackColor = Color.Pink;
}
}
}
else if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Release Date")
{
ShortFormDateFormat(e);
}
}
//Even though the date internaly stores the year as YYYY, using formatting, the
//UI can have the format in YY.
private static void ShortFormDateFormat(DataGridViewCellFormattingEventArgs formatting)
{
if (formatting.Value != null)
{
try
{
System.Text.StringBuilder dateString = new System.Text.StringBuilder();
DateTime theDate = DateTime.Parse(formatting.Value.ToString());
dateString.Append(theDate.Month);
dateString.Append("/");
dateString.Append(theDate.Day);
dateString.Append("/");
dateString.Append(theDate.Year.ToString().Substring(2));
formatting.Value = dateString.ToString();
formatting.FormattingApplied = true;
}
catch (FormatException)
{
// Set to false in case there are other handlers interested trying to
// format this DataGridViewCellFormattingEventArgs instance.
formatting.FormattingApplied = false;
}
}
}
Private Sub dataGridView1_CellFormatting(ByVal sender As Object, _
ByVal e As DataGridViewCellFormattingEventArgs) _
Handles dataGridView1.CellFormatting
' If the column is the Artist column, check the
' value.
If Me.dataGridView1.Columns(e.ColumnIndex).Name _
= "Artist" Then
If e.Value IsNot Nothing Then
' Check for the string "pink" in the cell.
Dim stringValue As String = _
CType(e.Value, String)
stringValue = stringValue.ToLower()
If ((stringValue.IndexOf("pink") > -1)) Then
e.CellStyle.BackColor = Color.Pink
End If
End If
ElseIf Me.dataGridView1.Columns(e.ColumnIndex).Name _
= "Release Date" Then
ShortFormDateFormat(e)
End If
End Sub
'Even though the date internaly stores the year as YYYY, using formatting, the
'UI can have the format in YY.
Private Shared Sub ShortFormDateFormat(ByVal formatting As DataGridViewCellFormattingEventArgs)
If formatting.Value IsNot Nothing Then
Try
Dim dateString As System.Text.StringBuilder = New System.Text.StringBuilder()
Dim theDate As Date = DateTime.Parse(formatting.Value.ToString())
dateString.Append(theDate.Month)
dateString.Append("/")
dateString.Append(theDate.Day)
dateString.Append("/")
dateString.Append(theDate.Year.ToString().Substring(2))
formatting.Value = dateString.ToString()
formatting.FormattingApplied = True
Catch notInDateFormat As FormatException
' Set to false in case there are other handlers interested trying to
' format this DataGridViewCellFormattingEventArgs instance.
formatting.FormattingApplied = False
End Try
End If
End Sub
Commenti
Gestire l'evento CellFormatting per personalizzare la conversione di un valore di cella in un formato adatto per la visualizzazione o per personalizzare l'aspetto di una cella a seconda dello stato o del valore.
L'evento si verifica ogni volta che ogni cella viene dipinta, quindi è consigliabile evitare l'elaborazione CellFormatting lunga durante la gestione di questo evento. Questo evento si verifica anche quando la cella FormattedValue viene recuperata o viene chiamato il GetFormattedValue relativo metodo.
Quando si gestisce l'evento CellFormatting , la ConvertEventArgs.Value proprietà viene inizializzata con il valore della cella. Se si specifica la conversione personalizzata dal valore della cella al valore visualizzato, impostare la ConvertEventArgs.Value proprietà sul valore convertito, assicurandosi che il nuovo valore sia del tipo specificato dalla proprietà cell FormattedValueType . Per indicare che non è necessaria alcuna formattazione del valore ulteriore, impostare la DataGridViewCellFormattingEventArgs.FormattingApplied proprietà su true
.
Al termine del gestore eventi, se ConvertEventArgs.Value l'oggetto è null
o non è del tipo corretto oppure la DataGridViewCellFormattingEventArgs.FormattingApplied proprietà è false
, la Value proprietà viene formattata usando le NullValueDataSourceNullValueFormatproprietà , , e FormatProvider dello stile della cella restituita dalla DataGridViewCellFormattingEventArgs.CellStyle proprietà, inizializzata usando la proprietà cell.InheritedStyle
Indipendentemente dal valore della proprietà, le proprietà di visualizzazione dell'oggetto DataGridViewCellFormattingEventArgs.FormattingApplied restituito dalla DataGridViewCellFormattingEventArgs.CellStyle proprietà vengono usate per eseguire il rendering della cella.
Per altre informazioni sulla formattazione personalizzata usando l'eventoCellFormatting, vedere Procedura: Personalizzare la formattazione dei dati nel controllo DataGridView Windows Forms.
Per evitare penalità sulle prestazioni durante la gestione di questo evento, accedere alla cella tramite i parametri del gestore eventi anziché accedere direttamente alla cella.
Per personalizzare la conversione di un valore formattato, specificato dall'utente in un valore di cella effettivo, gestire l'evento CellParsing .
Per altre informazioni su come gestire gli eventi, vedere la gestione e generazione di eventi.
Costruttori
DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle) |
Inizializza una nuova istanza della classe DataGridViewCellFormattingEventArgs. |
Proprietà
CellStyle |
Ottiene o imposta lo stile della cella in corso di formattazione. |
ColumnIndex |
Ottiene l'indice di colonna della cella in corso di formattazione. |
DesiredType |
Ottiene il tipo di dati del valore desiderato. (Ereditato da ConvertEventArgs) |
FormattingApplied |
Ottiene o imposta un valore che indica se la formattazione del valore della cella è riuscita. |
RowIndex |
Ottiene l'indice di riga della cella in corso di formattazione. |
Value |
Ottiene o imposta il valore dell'oggetto ConvertEventArgs. (Ereditato da ConvertEventArgs) |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Si applica a
Vedi anche
- DataGridView
- CellFormatting
- CellParsing
- DefaultCellStyle
- OnCellFormatting(DataGridViewCellFormattingEventArgs)
- DataGridViewCellStyle
- Format
- FormatProvider
- NullValue
- DataSourceNullValue
- InheritedStyle
- Value
- FormattedValue
- FormattedValueType
- GetFormattedValue(Object, Int32, DataGridViewCellStyle, TypeConverter, TypeConverter, DataGridViewDataErrorContexts)
- DataGridViewCellFormattingEventHandler
- FormattingApplied
- CellStyle
- Value
- Stili della cella nel controllo DataGridView Windows Form
- Procedura: Formattare dati personalizzati in un controllo DataGridView di Windows Form
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per