Solucionando problemas de controle DataRepeater (Visual Studio)

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

Eventos de Mouse e teclado 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 em tempo de execução.O DataRepeaterItem não expõe eventos em tempo de design.Portanto, clicando em um item ou pressionando uma tecla, quando o item tem o foco não dispara um evento.

A exceção é quando o Padding propriedade estiver definida como um grande valor suficiente para expor as bordas da DataRepeater controle.Nesse caso, o clique 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 o 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 controles ligados a dados da Fontes de dados janela, o BindingNavigator controle pode aparecer na parte superior da DataRepeater controle.Esta é uma limitação conhecida da Fontes de dados janela e é consistente com o comportamento de outros controles, como o DataGridView controle.

Você pode tanto mover a DataRepeater menor do que o BindingNavigator controle em tempo de design ou adicionar um código semelhante a procedimento 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 do ItemTemplate para o DataRepeaterItem sempre não é possível determinar todas as propriedades de todos os controles.Por exemplo, se você adicionar um não acoplado ListBox o controle para um DataRepeater de controle em tempo de design e preencher seu Items coleção com uma lista de seqüências de caracteres, o ListBox estará vazia em tempo de execução.Isso ocorre porque o processo de clonagem não é possível levar em consideração a Items propriedade.

Você pode corrigir problemas como esse, restaurando 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 controlar na 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 no 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 ficará visível quando um controle está selecionado e o símbolo de lápis não ficará visível quando um controle está no modo de edição.

  • Se a ItemHeaderSize propriedade estiver definida como um valor que seja menor do 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 da DataRepeaterItem na DrawItem evento da DataRepeater controle.Para obter mais informações, consulte IsCurrent.

Consulte também

Tarefas

Como: exibição vinculado a dados em um controle DataRepeater (Visual Studio)

Como: exibir não acoplados a controles 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 adicionar e excluir 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)