DataGridViewCellFormattingEventArgs Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Tillhandahåller data för CellFormatting händelsen för en DataGridView.
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
- Arv
Exempel
I följande kodexempel visas hur du hanterar 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
Kommentarer
CellFormatting Hantera händelsen för att anpassa konverteringen av ett cellvärde till ett format som är lämpligt för visning eller för att anpassa utseendet på en cell beroende på dess tillstånd eller värde.
Händelsen CellFormatting inträffar varje gång varje cell målas, så du bör undvika lång bearbetning när du hanterar den här händelsen. Den här händelsen inträffar också när cellen FormattedValue hämtas eller dess GetFormattedValue metod anropas.
När du hanterar händelsen CellFormattingConvertEventArgs.Value initieras egenskapen med cellvärdet. Om du anger anpassad konvertering från cellvärdet till visningsvärdet anger du ConvertEventArgs.Value egenskapen till det konverterade värdet, vilket säkerställer att det nya värdet är av den typ som anges av cellegenskapen FormattedValueType . Om du vill ange att ingen ytterligare värdeformatering krävs anger du DataGridViewCellFormattingEventArgs.FormattingApplied egenskapen till true.
När händelsehanteraren är klar, om ConvertEventArgs.Value är null eller inte är av rätt typ, eller DataGridViewCellFormattingEventArgs.FormattingApplied om egenskapen är false, Value formateras med egenskaperna Format, NullValue, DataSourceNullValueoch för FormatProvider cellformatet som returneras av DataGridViewCellFormattingEventArgs.CellStyle egenskapen, som initieras med cellegenskapen InheritedStyle .
Oavsett värdet för DataGridViewCellFormattingEventArgs.FormattingApplied egenskapen används visningsegenskaperna för objektet som returneras av DataGridViewCellFormattingEventArgs.CellStyle egenskapen för att återge cellen.
Mer information om anpassad formatering med hjälp av händelsen CellFormatting finns i How to: Customize Data Formatting in the Windows Forms DataGridView Control.
För att undvika prestandapåföljder vid hantering av den här händelsen kan du komma åt cellen via parametrarna för händelsehanteraren i stället för att komma åt cellen direkt.
Om du vill anpassa konverteringen av ett formaterat, användardefinierat värde till ett faktiskt cellvärde hanterar du CellParsing händelsen.
Mer information om hur du hanterar händelser finns i Hantera och höja händelser.
Konstruktorer
| Name | Description |
|---|---|
| DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle) |
Initierar en ny instans av DataGridViewCellFormattingEventArgs klassen. |
Egenskaper
| Name | Description |
|---|---|
| CellStyle |
Hämtar eller anger formatet för cellen som formateras. |
| ColumnIndex |
Hämtar kolumnindexet för cellen som formateras. |
| DesiredType |
Hämtar datatypen för önskat värde. (Ärvd från ConvertEventArgs) |
| FormattingApplied |
Hämtar eller anger ett värde som anger om cellvärdet har formaterats. |
| RowIndex |
Hämtar radindexet för cellen som formateras. |
| Value |
Hämtar eller anger värdet för ConvertEventArgs. (Ärvd från ConvertEventArgs) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Gäller för
Se även
- 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
- Cellformat i Windows Forms DataGridView-kontroll
- Så här gör du: Anpassa dataformatering i Windows Forms DataGridView-kontroll