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
No Designer de Formulários do Windows, selecionar a região (superior) do modelo de item do DataRepeater controle.
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
No Code Editor, no evento na lista suspensa, clicar DrawItem.
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
Date |
History |
Motivo |
---|---|---|
Julho de 2008 |
Tópico adicional. |
Alteração de recurso do SP1. |