Postupy: Jak změnit vzhled ovládacího prvku DataRepeater (Visual Studio)
Můžete změnit vzhled ovládacího prvku DataRepeater v době návrhu nastavením vlastností nebo za běhu zpracování události DrawItem.
Vlastnosti, které při návrhu nastavíte v čase kdy je vybrána sekce šablony prvků v ovládacím prvku, se budou opakovat pro každý DataRepeaterItem v době běhu aplikace. Vlastnosti týkající se vzhledu samotného ovládacího prvku DataRepeater se zobrazí v době běhu, pouze pokud je část kontejneru ponechána nezakrytá (například pokud je vlastnost Padding nastavena na velkou hodnotu).
V době běhu je možné nastavit vlastnosti týkající se vzhledu v závislosti na podmínkách. Například v plánovací aplikaci, můžete chtít změnit barvu pozadí položky a tímto varovat uživatele, že je položka po splatnosti. Pokud nastavíte vlastnost v podmíněném příkazu v obslužné rutině události DrawItem jako například If…Then, musíte použít také klauzuli Else, které určuje vzhled při nesplnění podmínky.
Chcete-li změnit vzhled v době návrhu
V návrháři modelu Windows Forms, označte šablonu položky v horní části ovládacího prvku DataRepeater.
V okně Vlastnosti, označte a změňte hodnotu. Společné vlastnosti, které ovlivňují vzhled zahrnují BackColor, BackgroundImage, BorderStyle a ForeColor.
Chcete-li změnit vzhled za běhu
V rozevíracím seznamu událostí rditoru kódu, klikněte na tlačítko DrawItem.
V obslužné rutině události DrawItem přidejte kód, který nastaví vlastnosti:
' Set the default BackColor. e.DataRepeaterItem.BackColor = Color.White ' Loop through the controls on the DataRepeaterItem. For Each c As Control In e.DataRepeaterItem.Controls ' Check the type of each control. If TypeOf c Is TextBox Then ' If a TextBox, change the BackColor. c.BackColor = Color.AliceBlue Else ' Otherwise use the default BackColor. c.BackColor = e.DataRepeaterItem.BackColor End If Next
// Set the default BackColor. e.DataRepeaterItem.BackColor = Color.White; // Loop through the controls on the DataRepeaterItem. foreach (Control c in e.DataRepeaterItem.Controls) { // Check the type of each control. if (c is TextBox) // If a TextBox, change the BackColor. { c.BackColor = Color.AliceBlue; } else { // Otherwise use the default BackColor. c.BackColor = e.DataRepeaterItem.BackColor; } }
Příklad
Některé běžné úpravy pro ovládací prvek DataRepeater obsahují zobrazení řádků se střídavými barvami a změnu barvy pole založenou na podmínce. Následující příklad ukazuje, jak provést tyto úpravy. Tento příklad předpokládá, že máte ovládací prvek DataRepeater svázaný s tabulkou produktů v databázi Northwind.
Private Sub DataRepeater1_DrawItem(
ByVal sender As Object,
ByVal e As Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs
) Handles DataRepeater1.DrawItem
' Alternate the back color.
If (e.DataRepeaterItem.ItemIndex Mod 2) <> 0 Then
' Apply the secondary back color.
e.DataRepeaterItem.BackColor = Color.AliceBlue
Else
' Apply the default back color.
e.DataRepeaterItem.BackColor = Color.White
End If
' Change the color of out-of-stock items to red.
If e.DataRepeaterItem.Controls(
UnitsInStockTextBox.Name).Text < 1 Then
e.DataRepeaterItem.Controls(UnitsInStockTextBox.Name).
BackColor = Color.Red
Else
e.DataRepeaterItem.Controls(UnitsInStockTextBox.Name).
BackColor = Color.White
End If
End Sub
private void dataRepeater1_DrawItem(object sender,
Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
// Alternate the back color.
if ((e.DataRepeaterItem.ItemIndex % 2) != 0)
// Apply the secondary back color.
{
e.DataRepeaterItem.BackColor = Color.AliceBlue;
}
else
{
// Apply the default back color.
e.DataRepeaterItem.BackColor = Color.White;
}
// Change the color of out-of-stock items to red.
if (e.DataRepeaterItem.Controls["unitsInStockTextBox"].Text == "0")
{
e.DataRepeaterItem.Controls["unitsInStockTextBox"].BackColor = Color.Red;
}
else
{
e.DataRepeaterItem.Controls["unitsInStockTextBox"].BackColor = Color.White;
}
}
Všimněte si, že pro obě tyto úpravy je nutné dodat kód k nastavení vlastností pro obě strany podmínky. Pokud nezadáte podmínku Else, zobrazí se vám za běhu neočekávaný výsledek.
Viz také
Úkoly
Řešení problému s ovládacím prvkem DataRepeater (Visual Studio)
Postupy: Jak zobrazit vázané data v ovládacím prvku DataRepeater (Visual Studio)
Postupy: Jak zobrazit nevázané data v ovládacím prvku DataRepeater (Visual Studio)
Postupy: Jak zobrazit záhlaví položka v ovládacím prvku DataRepeater (Visual Studio)