Condividi tramite


Controllo ListObject

Aggiornamento: Luglio 2008

Si applica a

Le informazioni contenute in questo argomento riguardano solo i progetti Visual Studio Tools per Office e le versioni di Microsoft Office specificati.

Progetti a livello di documento

  • Excel 2007

  • Excel 2003

Progetti a livello di applicazione

  • Excel 2007

Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazione.

Il controllo ListObject è un elenco che espone eventi e può essere associato a dati. Quando si aggiunge un elenco a un foglio di lavoro con Visual Studio Tools per Office, viene creato un controllo ListObject per il quale è possibile eseguire la programmazione diretta senza che sia necessario il modello a oggetti di Microsoft Office Excel.

Creazione del controllo

È possibile aggiungere controlli ListObject a un foglio di lavoro di Microsoft Office Excel in fase di progettazione o in personalizzazioni a livello di documento in fase di esecuzione. A partire da Visual Studio 2008 Service Pack 1 (SP1) è possibile aggiungere, in fase di esecuzione, controlli ListObject in un componento aggiuntivo a livello di applicazione. Per ulteriori informazioni, vedere Procedura: aggiungere controlli ListObject a fogli di lavoro.

Nota:

Per impostazione predefinita, gli oggetti elenco creati dinamicamente non vengono resi persistenti nel foglio di lavoro come controlli host quando il foglio di lavoro viene chiuso. Per ulteriori informazioni, vedere la classe Aggiunta di controlli ai documenti di Office in fase di esecuzione.

Associazione di dati al controllo

Un controllo ListObject supporta l'associazione dati semplice e complessa. Il controllo ListObject può essere associato a un'origine dati mediante le proprietà DataSource e DataMember in fase di progettazione oppure mediante il metodo SetDataBinding in fase di esecuzione.

Nota:

L'oggetto ListObject viene aggiornato automaticamente quando viene associato a un'origine dati, ad esempio DataTable, che genera eventi al variare dei dati. Se l'oggetto ListObject viene associato a un'origine dati che non genera eventi al variare dei dati, è necessario chiamare il metodo RefreshDataRow o RefreshDataRows per aggiornare l'oggetto ListObject.

Quando si aggiunge un oggetto ListObject a un foglio di lavoro eseguendo il mapping di un elemento di schema ripetitivo a tale cella, Visual Studio Tools per Office esegue automaticamente il mapping dell'oggetto ListObject al DataSet generato. Tuttavia, l'oggetto ListObject non viene associato automaticamente ai dati. È possibile associare l'oggetto ListObject al dataset in fase di progettazione o in fase di esecuzione in un progetto a livello di documento. A partire dal Service Pack 1, è possibile associare a livello di codice l'oggetto ListObject al dataset in fase di esecuzione in un componente aggiuntivo a livello di applicazione.

Poiché i dati sono distinti dal controllo ListObject, è necessario aggiungere e rimuovere i dati tramite il DataSet associato e non in modo diretto mediante ListObject. Se i dati nel DataSet associato vengono aggiornati attraverso un qualsiasi meccanismo, il controllo ListObject rifletterà automaticamente tali modifiche. Per ulteriori informazioni, vedere la classe Associazione di dati ai controlli.

È possibile inserire rapidamente valori in un controllo ListObject associando il controllo ListObject a un'origine dati. Se i dati vengono modificati in un controllo ListObject con associazione a dati, le modifiche vengono apportate automaticamente anche nell'origine dati. Se si desidera inserire valori in un controllo ListObject per poi consentire all'utente di modificare i dati nel controllo ListObject senza modificare l'origine dati, è possivile utilizzare il metodo Disconnect per disconnettere il controllo ListObject dall'origine dati. Per ulteriori informazioni, vedere Procedura: riempire controlli ListObject con dati.

Nota:

L'associazione dati non è supportata per i controlli ListObject sovrapposti.

Miglioramento delle prestazioni nei controlli ListObject

La lettura di un file XML in un controllo ListObject con associazione dati tende a diventare più lenta se si associa prima il controllo e poi si chiama il metodo ReadXml per riempire il DataSet. Per migliorare le prestazioni, chiamare ReadXml prima di eseguire l'associazione al controllo.

Disconnessione di controlli ListObject dall'origine dati

Dopo avere inserito i dati in un controllo ListObject associandolo a un'origine dati, è possibile disconnetterlo in modo che le modifiche apportate ai dati nell'oggetto elenco non influiscano sull'origine dati. Per ulteriori informazioni, vedere la classe Procedura: riempire controlli ListObject con dati.

Formattazione

La formattazione che è possibile applicare a un oggetto Microsoft.Office.Interop.Excel.ListObject può essere applicata a un controllo Microsoft.Office.Tools.Excel.ListObject. La formattazione include bordi, tipi di carattere, formati numerici e stili. Gli utenti finali possono risistemare le colonne in un controllo ListObject associato a dati; queste modifiche rimarranno all'interno del documento, a patto che il controllo ListObject sia stato aggiunto al documento in fase di progettazione. Alla successiva apertura del documento, l'oggetto elenco sarà associato alla stessa origine dati, ma l'ordine delle colonne rifletterà le modifiche apportate dall'utente.

Aggiunta e rimozione di colonne in fase di esecuzione

Non è possibile aggiungere o rimuovere manualmente colonne in un controllo ListObject associato a dati in fase di esecuzione. Se un utente finale tenta di eliminare una colonna, questa verrà immediatamente ripristinata e le eventuali colonne aggiunte verranno rimosse. Si consiglia di scrivere codice per indicare agli utenti perché non possono eseguire queste azioni su un controllo ListObject associato a dati. Visual Studio Tools per Office fornisce diversi eventi su un controllo ListObject in relazione all'associazione dati. Ad esempio, è possibile utilizzare l'evento OriginalDataRestored per avvertire gli utenti che i dati che hanno tentato di modificare non possono essere rimossi e sono stati ripristinati.

Aggiunta e rimozione di righe in fase di esecuzione

È possibile aggiungere o rimuovere manualmente le righe in un controllo ListObject associato a dati, a patto che l'origine dati consenta l'aggiunta di nuove righe e non sia di sola lettura. È possibile scrivere codice per eventi come BeforeAddDataBoundRow per convalidare i dati oppure come ErrorAddDataBoundRow per riprovare dopo che un errore è stato corretto.

Per ulteriori informazioni, vedere°Procedura: convalidare dati quando viene aggiunta una nuova riga a un controllo ListObject e Procedura: gestire errori quando viene aggiunta una nuova riga a un controllo ListObject.

Ridenominazione di controlli ListObject in Excel 2007

Excel 2007 consente agli utenti di modificare in fase di esecuzione il nome delle tabelle di Excel utilizzando la scheda Progettazione. Tuttavia, il controllo ListObject non supporta questa funzionalità. Se un utente tenta di ridenominare una tabella di Excel che corrisponde a un controllo ListObject, il nome della tabella di Excel verrà automaticamente riconvertito in quello originale al salvataggio della cartella di lavoro.

Nota:

Gli elenchi di Excel sono definiti tabelle di Excel in Excel 2007.

Eventi

Per il controllo ListObject sono disponibili gli eventi seguenti:

Vedere anche

Attività

Procedura: aggiungere controlli ListObject a fogli di lavoro

Procedura: ridimensionare i controlli ListObject

Procedura: convalidare dati quando viene aggiunta una nuova riga a un controllo ListObject

Procedura: gestire errori quando viene aggiunta una nuova riga a un controllo ListObject

Procedura: mappare le colonne ListObject ai dati

Procedura: riempire controlli ListObject con dati

Esempio di controlli dinamici del componente aggiuntivo di Excel

Procedura: popolare fogli di lavoro con dati da un database

Concetti

Informazioni sulla persistenza di ordini di colonne e righe ListObject

Associazione di dati ai controlli

Estensione in fase di esecuzione di documenti di Word e di cartelle di lavoro di Excel in componenti aggiuntivi a livello di applicazione

Sviluppo di componenti aggiuntivi a livello di applicazione per Excel

Aggiunta di controlli ai documenti di Office in fase di esecuzione

Limitazioni a livello di codice degli elementi e dei controlli host

Altre risorse

Controlli host di Excel

Controlli host di Word

Controlli nei documenti di Office

Cronologia delle modifiche

Date

History

Motivo

Luglio 2008

Aggiunte informazioni sull'utilizzo dei controlli dell'oggetto elenco in un componente aggiuntivo a livello di applicazione.

Modifica di funzionalità in SP1.