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

  1. W projektancie Windows Forms, wybierz region szablonu (górnej) elementu DataRepeater kontroli.

  2. 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

  1. W edytorze kodu, w przypadku rozwijanej listy, kliknij DrawItem.

  2. 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)

Informacje

DataRepeater

DrawItem

Koncepcje

Wprowadzenie do formantu DataRepeater (Visual Studio)