DataGridViewCellFormattingEventArgs Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Poskytuje data pro CellFormatting událost .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
- Dědičnost
Příklady
Následující příklad kódu ukazuje, jak zpracovat 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
Poznámky
CellFormatting Zpracování události pro přizpůsobení převodu hodnoty buňky do formátu vhodného k zobrazení nebo přizpůsobení vzhledu buňky v závislosti na jejím stavu nebo hodnotě.
Událost CellFormatting nastane pokaždé, když je každá buňka vykreslena, takže byste se při zpracování této události měli vyhnout zdlouhavému zpracování. K této události dochází také při načtení buňky FormattedValue nebo při zavolání její GetFormattedValue metody.
Při zpracování CellFormatting události je ConvertEventArgs.Value vlastnost inicializována s hodnotou buňky. Pokud zadáte vlastní převod z hodnoty buňky na zobrazenou hodnotu, nastavte ConvertEventArgs.Value vlastnost na převedenou hodnotu a zajistěte, aby nová hodnota byla typu určeného vlastností buňky FormattedValueType . Pokud chcete označit, že není nutné žádné další formátování hodnot, nastavte DataGridViewCellFormattingEventArgs.FormattingApplied vlastnost na true
.
Po dokončení obslužné rutiny události, pokud ConvertEventArgs.Value je null
nebo není správného typu nebo DataGridViewCellFormattingEventArgs.FormattingApplied vlastnost je false
, Value je formátován pomocí Formatvlastností , NullValue, DataSourceNullValuea FormatProvider stylu buňky vrácených DataGridViewCellFormattingEventArgs.CellStyle vlastností, která je inicializována pomocí vlastnosti buňky InheritedStyle .
Bez ohledu na hodnotu DataGridViewCellFormattingEventArgs.FormattingApplied vlastnosti se vlastnosti zobrazení objektu vráceného DataGridViewCellFormattingEventArgs.CellStyle vlastností použijí k vykreslení buňky.
Další informace o vlastním formátování pomocí CellFormatting události naleznete v tématu Postupy: Přizpůsobení formátování dat v ovládacím prvku model Windows Forms DataGridView.
Abyste se vyhnuli snížení výkonu při zpracování této události, přistupujte k buňce prostřednictvím parametrů obslužné rutiny události a ne přímo k buňce.
Chcete-li přizpůsobit převod formátované hodnoty zadané uživatelem na skutečnou hodnotu buňky, zpracujte CellParsing událost.
Další informace o zpracování událostí najdete v tématu Zpracování a vyvolávání událostí.
Konstruktory
DataGridViewCellFormattingEventArgs(Int32, Int32, Object, Type, DataGridViewCellStyle) |
Inicializuje novou instanci DataGridViewCellFormattingEventArgs třídy . |
Vlastnosti
CellStyle |
Získá nebo nastaví styl buňky, která je formátována. |
ColumnIndex |
Získá index sloupce buňky, která je formátována. |
DesiredType |
Získá datový typ požadované hodnoty. (Zděděno od ConvertEventArgs) |
FormattingApplied |
Získá nebo nastaví hodnotu označující, zda byla hodnota buňky úspěšně naformátována. |
RowIndex |
Získá index řádku buňky, která je formátována. |
Value |
Získá nebo nastaví hodnotu objektu ConvertEventArgs. (Zděděno od ConvertEventArgs) |
Metody
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Platí pro
Viz také
- 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
- Styly buňky v ovládacím prvku Windows Forms DataGridView
- Postupy: Přizpůsobení formátování dat v ovládacím prvku Windows Forms DataGridView
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro