Compartilhar via


Como: Alterar a aparência de um controle DataRepeater (Visual Studio)

Você pode alterar a aparência de um DataRepeater controlar ao time de design definindo as propriedades ou em time de execução pelo tratamento de DrawItem evento.

Propriedades que você conjunto no time de design quando a seção de modelo de item do controle é selecionada será repetida para cada DataRepeaterItem em time de execução. Propriedades relacionadas a aparência do DataRepeater controle propriamente dito ficará visível em time de execução somente se uma parte do contêiner é deixada descoberto (por exemplo, se a Padding propriedade é definida com um valor grande).

Em time de execução, propriedades relacionadas à aparência podem ser definidas com baseadas nas condições.Por exemplo, em um aplicativo de agendamento, você pode alterar a cor do plano de fundo de um item para avisar os usuários quando um item está vencidas.No DrawItem evento manipulador, se você conjunto uma propriedade em uma demonstrativo condicional, tais sistema autônomo If…Then, você também deve usar um Else cláusula para especificar a aparência quando a condição não for atendida.

Para alterar a aparência em time de design

  1. No Designer de Formulários do Windows, selecionar a região (superior) do modelo de item do DataRepeater controle.

  2. Na janela Propriedades, selecionar uma propriedade e altere o valor.Propriedades comuns que afetam a aparência incluem BackColor, BackgroundImage, BorderStyle, e ForeColor.

Para alterar a aparência em time de execução

  1. No Code Editor, no evento na lista suspensa, clicar DrawItem.

  2. No DrawItem manipulador de eventos, adicione código para conjunto as propriedades:

    ' 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;
        }
    }
    

Exemplo

Algumas personalizações comuns para o DataRepeater controle incluem exibir as linhas em cores alternadas e alterando a cor de um campo com base em uma condição. O exemplo a seguir mostra como realizar essas personalizações.Este exemplo pressupõe que você tenha um DataRepeater controle que esteja limite à tabela Produtos no banco de dados 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.
        DataRepeater1.ItemTemplate.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.
        dataRepeater1.ItemTemplate.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;
    }
}

Observe que para ambas essas personalizações, você deve fornecer código para conjunto propriedades para os dois lados da condição.Se você não especificar o Else condição, você verá resultados inesperados em time de execução.

Consulte também

Tarefas

Solução de problemas do controle DataRepeater (Visual Studio)

Como: Exibição limite a dados em um controle DataRepeater (Visual Studio)

Como: Exibir dados não acoplados em um controle DataRepeater (Visual Studio)

Como: Exibir cabeçalhos de item em um controle DataRepeater (Visual Studio)

Conceitos

Introdução ao controle DataRepeater (Visual Studio)

Referência

DataRepeater

DrawItem

Date

History

Motivo

Julho de 2008

Tópico adicional.

Alteração de recurso do SP1.