Procedura dettagliata: creazione di un controllo utente che supporta l'associazione ai dati di ricerca
Aggiornamento: novembre 2007
Quando si visualizzano i dati in Windows Form, è possibile scegliere i controlli esistenti dalla Casella degli strumenti oppure creare controlli personalizzati se l'applicazione richiede delle funzionalità non disponibili nei controlli standard. In questa procedura dettagliata viene illustrato come creare un controllo che implementa l'oggetto LookupBindingPropertiesAttribute. Nei controlli che implementano l'oggetto LookupBindingPropertiesAttribute possono essere contenute tre proprietà per l'associazione a dati. Tali controlli sono simili a un oggetto ComboBox .
Per ulteriori informazioni sulla modifica di controlli, vedere Sviluppo di controlli Windows Form in fase di progettazione.
Durante la modifica dei controlli da utilizzare negli scenari di associazione dati, è necessario implementare uno degli attributi di associazione dati riportati di seguito.
Utilizzo di attributi di associazione dati |
---|
Implementare l'oggetto DefaultBindingPropertyAttribute su controlli semplici, ad esempio un oggetto TextBox, che visualizzano una singola colonna (oppure una proprietà) di dati. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un controllo utente che supporta l'associazione dati semplice. |
Implementare l'oggetto ComplexBindingPropertiesAttribute sui controlli, ad esempio un oggetto DataGridView, che visualizzano elenchi (oppure tabelle) di dati. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un controllo utente che supporta l'associazioni ai dati complessa. |
Implementare l'oggetto LookupBindingPropertiesAttribute sui controlli, ad esempio ComboBox, in cui vengono visualizzati elenchi (oppure tabelle) di dati, ma nei quali è necessaria l'esistenza di una singola colonna o proprietà. Il processo è descritto nella pagina di questa procedura dettagliata. |
Questa procedura dettagliata consente la creazione di un controllo di ricerca che si associa ai dati di due tabelle. In questo esempio vengono utilizzate le tabelle Customerse Orders del database di esempio Northwind. Il controllo di ricerca sarà associato al campo CustomerID della tabella Orders. Verrà utilizzato questo valore per ricercare CompanyName dalla tabella Customers.
In particolare, vengono illustrate le seguenti operazioni:
Creazione di una nuova Applicazione Windows.
Aggiunta di un nuovo Controllo utente al progetto.
Progettazione visiva del controllo utente.
Implementazione dell'attributo LookupBindingProperty.
Creazione di un dataset con la Configurazione guidata origine dati.
Impostazione della colonna CustomerID della tabella Orders nella finestra Origini dati per l'utilizzo del nuovo controllo.
Creazione di un form per visualizzare i dati nel nuovo controllo.
Prerequisiti
Per completare questa procedura dettagliata è necessario:
- Accesso al database di esempio Northwind. Per ulteriori informazioni, vedere Procedura: installare database di esempio.
Creazione di un'applicazione Windows
Il primo passaggio consiste nella creazione di un'Applicazione Windows.
Per creare un nuovo progetto Windows
In Visual Studio scegliere Progetto dal menu File.
Denominare il progetto LookupControlWalkthrough.
Selezionare Applicazione Windows e scegliere OK. Per ulteriori informazioni, vedere Creazione di applicazioni per Windows.
Il progetto LookupControlWalkthrough viene creato e aggiunto a Esplora soluzioni.
Aggiunta di un controllo utente al progetto
Questa procedura guidata consente di creare un controllo di ricerca da un Controllo utente e di aggiungere un elemento Controllo utente al progetto LookupControlWalkthrough.
Per aggiungere un controllo utente al progetto
Scegliere Aggiungi controllo utente dal menu Progetto.
Digitare LookupBox nell'area Nome, quindi fare clic su Aggiungi.
Il controllo LookupBox viene aggiunto a Esplora soluzioni e viene aperto nella finestra di progettazione.
Progettazione del controllo LookupBox
Per progettare il controllo LookupBox
- Trascinare un oggetto ComboBox dalla Casella degli strumenti all'area di progettazione del controllo utente.
Aggiunta dell'attributo di associazione dati richiesto.
Per i controlli di ricerca che supportano l'associazioni dati, è possibile implementare l'oggetto LookupBindingPropertiesAttribute.
Per implementare l'attributo LookupBindingProperties
Passare al controllo LookupBox per la visualizzazione codice. Scegliere Codice dal menu Visualizza.
Sostituire il codice nel controllo LookupBox con la stringa seguente:
<System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")> _ Public Class LookupBox Public Property DataSource() As Object Get Return ComboBox1.DataSource End Get Set(ByVal value As Object) ComboBox1.DataSource = value End Set End Property Public Property DisplayMember() As String Get Return ComboBox1.DisplayMember End Get Set(ByVal value As String) ComboBox1.DisplayMember = value End Set End Property Public Property ValueMember() As String Get Return ComboBox1.ValueMember End Get Set(ByVal value As String) ComboBox1.ValueMember = value End Set End Property Public Property LookupMember() As String Get Return ComboBox1.SelectedValue.ToString() End Get Set(ByVal value As String) ComboBox1.SelectedValue = value End Set End Property End Class
using System.Windows.Forms; namespace CS { [System.ComponentModel.LookupBindingProperties("DataSource", "DisplayMember", "ValueMember", "LookupMember")] public partial class LookupBox : UserControl { public object DataSource { get{ return comboBox1.DataSource; } set{ comboBox1.DataSource = value; } } public string DisplayMember { get{ return comboBox1.DisplayMember; } set{ comboBox1.DisplayMember = value; } } public string ValueMember { get{ return comboBox1.ValueMember; } set{ comboBox1.ValueMember = value; } } public string LookupMember { get{ return comboBox1.SelectedValue.ToString(); } set{ comboBox1.SelectedValue = value; } } public LookupBox() { InitializeComponent(); } } }
Scegliere Genera soluzione dal menu Genera.
Creazione di un'origine dati dal database in uso.
Questa procedura consente di creare un'origine dati mediante la Configurazione guidata origine dati sulla base delle tabelle Customers e Orders del database di esempio Northwind. Per creare la connessione è necessario disporre dell'accesso al database di esempio Northwind. Per informazioni sull'impostazione del database di esempio Northwind, vedere Procedura: installare database di esempio.
Per creare l'origine dati
Scegliere Mostra origini dati dal menu Dati.
Nella finestra Origini dati selezionare Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.
Selezionare Database nella pagina Scegliere un tipo di origine dati e scegliere Avanti.
Nella pagina Seleziona connessione dati effettuare una delle seguenti operazioni:
Nell'elenco a discesa, selezionare la connessione dati al database di esempio Northwind, se presente.
In alternativa
Selezionare Nuova connessione per aprire la finestra di dialogo Aggiungi/Modifica connessione. Per ulteriori informazioni, vedere Finestra di dialogo Aggiungi/Modifica connessione (generale).
Se il database in uso richiede una password, selezionare l'opzione che consente di includere dati riservati e fare clic su Avanti.
Fare clic su Avanti nella pagina Salva la stringa di connessione nel file di configurazione dell'applicazione.
Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.
Selezionare le tabelle Customers e Orders e scegliere Fine.
L'oggetto NorthwindDataSet viene aggiunto al progetto e le tabelle Customers e Orders vengono visualizzate nella finestra Origini dati.
Impostazione della colonna CustomerID della tabella Orders per l'utilizzo del controllo LookupBox
Nella finestra Origini dati è possibile impostare il controllo in modo che venga creato prima dell'operazione di trascinamento degli elementi nel form in uso.
Per impostare la colonna CustomerID da associare al controllo LookupBox
Aprire Form1 nella finestra di progettazione.
Espandere il nodo Customers nella finestra Origini dati.
Espandere il nodo Orders (contenuto nel nodo Customers nella colonna Fax).
Fare clic sulla freccia a discesa del nodo Orders e scegliere Dettagli dall'elenco dei controlli.
Fare clic sulla freccia a discesa sulla colonna CustomerID (contenuta nel nodo Orders) e scegliere Personalizza.
Selezionare LookupBox dall'elenco dei controlli associati nella finestra di dialogo relativa alle opzioni di Personalizzazione dell'interfaccia utente dati.
Scegliere OK.
Fare clic sulla freccia a discesa della colonna CustomerID e scegliere LookupBox.
Aggiunta di controlli al form
È possibile creare i controlli associati a dati trascinando gli elementi dalla finestra Origini dati a Form1.
Per creare controlli associati a dati in Windows Form
- Trascinare il nodo Orders dalla finestra Origini dati a Windows Form e verificare che sia utilizzato il controllo LookupBox per la visualizzazione dei dati nella colonna CustomerID.
Associazione del controllo per la ricerca del CompanyName dalla tabella Customers
Per installare le associazioni di ricerca
Selezionare il nodo Customers principale nella finestra Origini dati e trascinarlo nella casella combinata di CustomerIDLookupBox in Form1.
Tale procedura consente di configurare l'associazioni dati in modo da visualizzare il controllo CompanyName della tabella Customers e allo stesso tempo mantenere il valore CustomerID della tabella Orders. Per ulteriori informazioni, vedere Procedura: creare tabelle di ricerca.
Esecuzione dell'applicazione
Per eseguire l'applicazione
Premere F5 per eseguire l'applicazione.
Spostarsi all'interno di alcuni record e verificare che CompanyName venga visualizzato nel controllo LookupBox.
Vedere anche
Attività
Procedura: impostare il controllo da creare per il trascinamento dalla finestra Origini dati
Concetti
Cenni preliminari sulla visualizzazione dei dati
Altre risorse
Connessione ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Visualizzazione di dati su form nelle applicazioni Windows