Partilhar via


Controle de ListObject

O controle de ListObject é uma lista que expõe eventos e pode ser associada a dados.Quando você adiciona uma lista a uma planilha, o Visual Studio cria um controle de ListObject que você possa ser chamado diretamente sem ter que fazer o modelo de objeto do Microsoft Office Excel.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para Excel 2013 e Excel 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

criando o controle

Em projetos de um documento nível, você pode adicionar controles de ListObject a uma planilha em tempo de design ou em tempo de execução.Em projetos de aplicativo, você pode adicionar controles de ListObject em planilhas somente em tempo de execução.Para obter mais informações, consulte Como: adicionar controles de ListObject às planilhas.

ObservaçãoObservação

Por padrão, os objetos criados dinamicamente de lista não são persistentes na planilha como controles host quando a planilha é fechada.Para obter mais informações, consulte Adicionar controles a documentos do Office em tempo de execução.

Associando dados ao controle

Um controle de ListObject suporta associação de dados simples e complexos.O controle de ListObject pode ser associado a uma fonte de dados usando as propriedades de DataSource e de DataMember em tempo de design ou o método de SetDataBinding em tempo de execução.

ObservaçãoObservação

ListObject é atualizado automaticamente quando é associado a uma fonte de dados, como DataTable, que gera eventos quando os dados mudam.Se você ListObject associa a uma fonte de dados que não gera eventos quando os dados mudarem, você deve chamar o método de RefreshDataRow ou de RefreshDataRows para atualizar ListObject.

Quando você adiciona ListObject a uma célula de planilha mapeando um elemento de repetição do esquema para a célula, o Visual Studio automaticamente mapeia ListObject ao dataset gerado.Em o entanto, ListObject não é associado a dados automaticamente.Você pode tomar medidas para associar em tempo de design ou em tempo de execução ListObject ao dataset em um projeto de um documento nível.Você pode programaticamente associar ListObject ao conjunto de dados em tempo de execução em um suplemento ao aplicativo.

Porque os dados são separados de ListObject, você deve adicionar e remover dados com o conjunto de dados associada, e não diretamente com ListObject.Se os dados no dataset associado são atualizados por meio de qualquer mecanismo, o controle de ListObject reflete automaticamente as alterações.Para obter mais informações, consulte A ligação de dados a controles em soluções do Office.

você pode rapidamente preencher um controle de ListObject associando ListObject a uma fonte de dados.Se você edita os dados em ListObjectassociado a dados, as alterações são feitas automaticamente na fonte de dados também.Se você deseja preencher ListObject e para permitir que o usuário para alterar os dados em ListObject sem alterar a fonte de dados, você pode usar o método de Disconnect para desanexar ListObject da fonte de dados.Para obter mais informações, consulte Como: preencher ListObject controles com dados.

ObservaçãoObservação

Associação de dados não é suportada em controles sobrepostos de ListObject .

2ttzcbhb.collapse_all(pt-br,VS.110).gifmelhorando o desempenho em controles de ListObject

Ler um arquivo XML em ListObject controle associado a dados tende a ser mais lento se você associa o controle primeiro, e em seguida ReadXml para preencher o dataset.Para melhorar o desempenho, chame ReadXml antes que você associe o controle.

2ttzcbhb.collapse_all(pt-br,VS.110).gifDesligando controles de ListObject da fonte de dados

Depois que você preenche um controle de ListObject com dados associando-o a uma fonte de dados, você pode desativá-la de modo que as alterações feitas a dados no objeto de lista não afetem a fonte de dados.Para obter mais informações, consulte Como: preencher ListObject controles com dados.

2ttzcbhb.collapse_all(pt-br,VS.110).gifRestaurando a ordem de coluna e linha

Quando você associa os dados a ListObject controle que foram adicionados a um documento em tempo de design, o Visual Studio mantêm-se o controle sobre a ordem de coluna e linha sempre que a pasta de trabalho são salvas.Se um usuário move as colunas ou linhas de ListObject durante o tempo de execução, o novo pedido é preservada a próxima vez em que a pasta de trabalho é aberta e os associa o controle de ListObject para a fonte de dados novamente.

Se você desejar restaurar ListObject à coluna original e para colocar em ordem, você pode chamar o método de ResetPersistedBindingInformation .Este método remove as propriedades personalizadas do documento relacionadas à ordem de coluna e linha de ListObjectespecificado.Chamar este método de evento de Shutdown de pasta de trabalho se você não deseja preservar a coluna e para colocar a ordem de ListObject.

Formatação

Formatação que pode ser aplicado a Microsoft.Office.Interop.Excel.ListObject pode ser aplicado a um controle de Microsoft.Office.Tools.Excel.ListObject .Isso inclui bordas, fontes, formato de número, e estilos.Os usuários finais podem reordenar colunas em ListObjectassociado a dados, e essas alterações serão mantidas com o documento, desde que ListObject foi adicionado ao documento em tempo de design.O documento está aberto na próxima vez, o objeto de lista será associado à mesma fonte de dados, mas a ordem de coluna refletirá as alterações dos usuários.

adicionando e removendo colunas em tempo de execução

Você não pode adicionar manualmente ou para remover as colunas em ListObject associado a dados controle em tempo de execução.Se um usuário final tentar excluir uma coluna, será restaurado imediatamente e todas as colunas adicionadas serão removidas.Portanto, é importante para gravar código para explicar usuários porque não podem executar essas ações em ListObject que é associado a dados.Visual Studio fornece vários eventos em ListObject relativo a associação de dados.Por exemplo, você pode usar o evento de OriginalDataRestored aviso para os usuários que os dados que tentaram excluir não podem ser excluídos e foram restaurados.

adicionando e removendo linhas em tempo de execução

Você pode manualmente adicionar e remover linhas em um controle associado a dados de ListObject , desde que a fonte de dados permite a adição de novas linhas e não é somente leitura.Você pode escrever código para eventos como BeforeAddDataBoundRow para validar os dados.Para obter mais informações, consulte Como: validar dados quando uma nova linha é adicionada a um controle de ListObject.

A as vezes na relação do objeto da lista para a fonte de dados faz erros rotineiros.Por exemplo, você pode mapear colunas que você deseja que apareça em ListObjectportanto, se você omitir as colunas que têm restrições, como um campo que não pode aceitar valores nulos, os erros são gerados sempre que uma linha é criada.Você pode escrever código para adicionar valores faltando em um manipulador de eventos para o evento de ErrorAddDataBoundRow .

Renomeando controles de ListObject Excel

O excel permite que os usuários alterem em tempo de execução o nome de tabelas do excel usando a guia de Design .Em o entanto, o controle de ListObject não oferece suporte a esse recurso.Se um usuário tentar renomear uma tabela do excel que corresponde a ListObject, o nome da tabela do excel reverterá automaticamente ao nome original quando a pasta de trabalho são salvas.

Eventos

os seguintes eventos estão disponíveis para o controle de ListObject :

Consulte também

Tarefas

Como: adicionar controles de ListObject às planilhas

Como: redimensionar controles ListObject

Como: validar dados quando uma nova linha é adicionada a um controle de ListObject

Como: mapear ListObject colunas para dados

Como: preencher ListObject controles com dados

Como: preencher as planilhas com dados de um banco de dados.

Conceitos

Automatizar o Excel usando o Extended objetos

Estendendo os documentos do Word e pastas de trabalho do Excel em suplementos de nível de aplicativo em tempo de execução

Adicionar controles a documentos do Office em tempo de execução

Limitações de programação de itens de Host e controles de Host

Outros recursos

Passo a passo e amostras de desenvolvimento do office

A ligação de dados a controles em soluções do Office

Controles em documentos do Office