Solucionando problemas de controle DataRepeater (Visual Studio)

Este tópico lista os problemas comuns que podem ocorrer quando você estiver trabalhando com o DataRepeater de controle.

Eventos de Mouse e o teclado de DataRepeater não são gerados

Alguns DataRepeater eventos de controle, como, por exemplo, eventos de teclado e mouse, não são gerados. Isso ocorre por design. O DataRepeater controle propriamente dito é um recipiente para DataRepeaterItem objetos e não pode ser acessado no tempo de execução. O DataRepeaterItem não expõe eventos em tempo de design. Portanto, clicando em um item ou pressionar uma tecla quando o item tem o foco não dispara um evento.

A exceção é quando o Padding for definida como um grande valor suficiente para expor as bordas da DataRepeater de controle. Nesse caso, clicar na margem exposta irá disparar eventos de mouse.

Para resolver esse problema, adicione um Panel o controle para o ItemTemplate seção a DataRepeater controle e, em seguida, adicione o restante dos controles para o Panel. Você pode adicionar código para o Panel manipuladores de eventos do controle para eventos de teclado e mouse.

DataRepeater parcialmente estiver oculto por trás do navegador de ligação

Quando você adiciona pela primeira vez um DataRepeater controle a um formulário e adicione os controles ligados a dados da Fontes de dados janela, o BindingNavigator controle pode aparecer na parte superior da DataRepeater de controle. Esta é uma limitação conhecida da Fontes de dados janela e é consistente com o comportamento de outros controles, como o DataGridView de controle.

Você pode tanto mover a DataRepeater inferior a BindingNavigator controle em tempo de design ou adicionar código semelhante a seguinte na Load manipulador de eventos.

DataRepeater1.Top = ProductsBindingNavigator.Height
dataRepeater1.Top = productsBindingNavigator.Height;

Controles não são exibidos corretamente em tempo de execução

Alguns controles em um DataRepeater controle pode não ser exibido conforme o esperado em tempo de execução. O processo usado para clonar os controles a partir de ItemTemplate para o DataRepeaterItem sempre pode determinar a todas as propriedades de todos os controles. Por exemplo, se você adicionar um não acoplado ListBox o controle para um DataRepeater controle em tempo de design e preencher seu Items coleção com uma lista de seqüências de caracteres, o ListBox estará vazia no tempo de execução. Isso ocorre porque o processo de clonagem não é possível levar em conta o Items propriedade.

Você pode corrigir problemas, como restaurar as propriedades ausentes na ItemCloned evento, que ocorre após a clonagem do padrão. O exemplo a seguir demonstra como reparar o Items coleção de um ListBox de controle no ItemCloned manipulador de eventos.

Private Sub DataRepeater1_ItemCloned(
    ByVal sender As Object, 
    ByVal e As Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs
  ) Handles DataRepeater1.ItemCloned

    Dim Source As ListBox = 
        CType(DataRepeater1.ItemTemplate.Controls.Item("ListBox1"), ListBox)
    Dim ListBox1 As ListBox = 
        CType(e.DataRepeaterItem.Controls.Item("ListBox1"), ListBox)
    For Each s As String In Source.Items
        ListBox1.Items.Add(s)
    Next
End Sub
private void dataRepeater1_ItemCloned(object sender, 
    Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
{
    ListBox Source = (ListBox)dataRepeater1.ItemTemplate.Controls["listBox1"];
    ListBox listBox1 = (ListBox)e.DataRepeaterItem.Controls["listBox1"];
    foreach (string s in Source.Items)
    {
        listBox1.Items.Add(s);
    }
}

O símbolo de seleção no cabeçalho do Item está faltando

Quando você altera o SelectionColor propriedade do cabeçalho de item em um DataRepeater controle, algumas opções de cores podem fazer com que o símbolo de seleção desapareça. Alterando a ItemHeaderSize propriedade também pode causar o símbolo de seleção desapareça.

A cor e o tamanho do símbolo de seleção não podem ser alterados.

  • Se você definir a SelectionColor para White, o símbolo de seleção não ficará visível quando um item é selecionado pela primeira vez.

  • Se você definir a SelectionColor para Black, o símbolo de seleção não estará visível quando um controle é selecionado, e o símbolo de lápis não será visível quando um controle é editar modo.

  • Se a ItemHeaderSize propriedade estiver definida como um valor que é menor que 11, os símbolos do indicador no cabeçalho de item não serão exibidos.

Você pode fornecer seu próprio símbolo de cabeçalho e seleção do item usando um PictureBox controle e monitoramento a IsCurrent propriedade do DataRepeaterItem no DrawItem evento da DataRepeater de controle. Para obter mais informações, consulte IsCurrent.

Consulte também

Tarefas

Como: Exibir os dados vinculados em um controle DataRepeater (Visual Studio)

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

Como: Alterar o Layout de um controle DataRepeater (Visual Studio)

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

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

Como: Desativar a adição e exclusão de itens de DataRepeater (Visual Studio)

Como: Pesquisar dados em um controle DataRepeater (Visual Studio)

Como: Criar um formulário mestre/detalhe usando dois controles de DataRepeater (Visual Studio)

Conceitos

Introdução ao controle DataRepeater (Visual Studio)