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
Progetti a livello di applicazione
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.
![]() |
---|
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.
![]() |
---|
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.
![]() |
---|
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.
![]() |
---|
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
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 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. |