Porady: zmienianie wyglądu formantu DataRepeater (Visual Studio)
Można zmienić wygląd DataRepeater kontroli w czasie projektowania przez ustawienie właściwości lub w czasie wykonywania przez obsługę DrawItem zdarzenia.
Właściwości, które można ustawić w czasie projektowania, gdy jest zaznaczony element sekcji szablonu kontroli będą powtarzane dla każdego DataRepeaterItem w czasie wykonywania.Właściwości związane z wyglądu DataRepeater sam formant będzie widoczny w czasie wykonywania pozostanie tylko wtedy, gdy w części kontenera niewykrytych (na przykład, jeśli Padding właściwość jest ustawiona na dużą wartość).
W czasie wykonywania właściwości dotyczące wyglądu można ustawić na podstawie warunków.Na przykład w aplikacji planowania, można zmienić kolor tła elementu, aby ostrzec użytkowników, gdy element jest zadłużone.W DrawItem obsługi zdarzeń, jeśli właściwość w instrukcji warunkowej takich jak If…Then, należy użyć Else klauzuli, aby określić wygląd, gdy warunek nie jest spełniony.
Aby zmienić wygląd w czasie projektowania
W projektancie Windows Forms, wybierz region szablonu (górnej) elementu DataRepeater kontroli.
W oknie dialogowym właściwości wybierz właściwość i zmienić wartość.Wspólne właściwości, które wpływają na wygląd obejmują BackColor, BackgroundImage, BorderStyle, i ForeColor.
Aby zmienić wygląd w czasie wykonywania
W edytorze kodu, w przypadku rozwijanej listy, kliknij DrawItem.
W DrawItem obsługi zdarzenia dodać kod, aby ustawić właściwości:
' 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; } }
Przykład
Niektóre dostosowania wspólnej dla DataRepeater kontroli obejmują, wyświetlając wiersze naprzemienne kolory i zmiana koloru pola na podstawie warunku.Poniższy przykład pokazuje, jak wykonać te dostosowania.W tym przykładzie założono, że DataRepeater formantu, który jest powiązany z tabelą Produkty w bazie danych 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;
}
}
Należy zauważyć, że w przypadku obu tych dostosowań należy podać kod, aby ustawić właściwości dla obu stron warunek.Jeśli nie określisz Else warunek, będzie pojawić nieoczekiwane wyniki, w czasie wykonywania.
Zobacz też
Zadania
Rozwiązywanie problemów z formantem DataRepeater (Visual Studio)
Porady: wyświetlanie powiązanych danych w formancie DataRepeater (Visual Studio)
Porady: wyświetlanie formantów niepowiązanych w formancie DataRepeater (Visual Studio)
Porady: wyświetlanie nagłówków elementów w formancie DataRepeater (Visual Studio)