Procedura dettagliata: creazione di un controllo utente Windows Form che supporta l'associazione dati di ricerca
Quando si visualizzano dati nei Windows Form, è possibile scegliere i controlli esistenti dalla Casella degli strumenti o creare controlli personalizzati se l'applicazione richiede funzionalità che non sono disponibili nei controlli standard. In questa procedura dettagliata è illustrato come creare un controllo che implementa LookupBindingPropertiesAttribute. I controlli che implementano LookupBindingPropertiesAttribute possono contenere tre proprietà associabili ai dati. Tali controlli sono simili a ComboBox.
Per altre informazioni sulla creazione di controlli, vedere Sviluppo di controlli Windows Form in fase di progettazione.
Quando si creano controlli da usare negli scenari di data binding, è necessario implementare uno degli attributi di data binding seguenti:
Uso degli attributi di data binding |
---|
Implementare DefaultBindingPropertyAttribute su controlli semplici, ad esempio TextBox, che visualizzano una singola colonna, o proprietà, di dati. Per altre informazioni, vedere Procedura dettagliata: creazione di un controllo utente Windows Form che supporta l'associazione dati semplice. |
Implementare ComplexBindingPropertiesAttribute su controlli, ad esempio DataGridView, che visualizzano elenchi, o tabelle, di dati. Per altre informazioni, vedere Procedura dettagliata: creazione di un controllo utente Windows Form che supporta l'associazione dati complessa. |
Implementare LookupBindingPropertiesAttribute su controlli, ad esempio ComboBox, che visualizzano elenchi, o tabelle, di dati ma che devono anche presentare una singola colonna o proprietà. Il processo è descritto in questa pagina di procedura dettagliata. |
Questa procedura dettagliata crea un controllo di ricerca che effettua l'associazione ai dati di due tabelle. Questo esempio usa le tabelle Customers e Orders del database di esempio Northwind. Il controllo di ricerca verrà associato al campo CustomerID dalla tabella Orders. Userà questo valore per eseguire la ricerca di CompanyName dalla tabella Customers.
Durante questa procedura dettagliata, si apprenderà come:
Creare una nuova applicazione Windows.
Aggiungere un nuovo controllo utente al progetto.
Progettare visivamente il controllo utente.
Implementare l'attributo LookupBindingProperty.
Creare un dataset con Configurazione guidata origine dati.
Impostare la colonna CustomerID nella tabella Orders della finestra Origini dati per usare il nuovo controllo.
Creare un form per visualizzare i dati nel controllo.
Prerequisiti
Per completare questa procedura dettagliata, è necessario:
- Accedere al database di esempio Northwind. Per altre informazioni, vedere Procedura: installare database di esempio.
Creazione di un'applicazione Windows
Il primo passaggio consiste nella creazione di un'applicazione Windows.
Per creare il nuovo progetto Windows
In Visual Studio creare un nuovo Progetto dal menu File.
Assegnare al progetto il nome LookupControlWalkthrough.
Selezionare Applicazione Windows e fare clic su OK. Per altre informazioni, vedere Sviluppo di applicazioni client con .NET Framework.
Il progetto LookupControlWalkthrough viene creato e aggiunto a Esplora soluzioni.
Aggiunta di un controllo utente al progetto
Dal momento che questa procedura dettagliata crea un controllo di ricerca da un Controllo utente, è necessario aggiungere un elemento Controllo utente al progetto LookupControlWalkthrough.
Per aggiungere un controllo utente al progetto
Selezionare 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 si apre nella finestra di progettazione.
Progettazione del controllo LookupBox
Per progettare il controllo LookupBox
- Trascinare un oggetto ComboBox dalla Casella degli strumenti nell'area di progettazione del controllo utente.
Aggiunta dell'attributo di data binding richiesto
Per controlli di ricerca che supportano il data binding, è possibile implementare l'attributo LookupBindingPropertiesAttribute.
Per implementare l'attributo LookupBindingProperties
Passare al controllo LookupBox per la visualizzazione del 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 Compila soluzione dal menu Compila.
Creazione di un'origine dati dal database
Questo passaggio crea un'origine dati usando la Configurazione guidata origine dati basata sulle tabelle Customers e Orders nel database di esempio Northwind. Per creare la connessione, è necessario avere 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 eseguire una delle operazioni seguenti:
Selezionare la connessione dati al database di esempio Northwind nell'elenco a discesa, se presente.
-oppure-
Selezionare Nuova connessione per aprire la finestra di dialogo Aggiungi/Modifica connessione.
Se il database in uso richiede una password, selezionare l'opzione che consente di includere dati riservati, quindi scegliere Avanti.
Nella pagina Salva stringa di connessione nel file di configurazione dell'applicazione fare clic su Avanti.
Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.
Selezionare le tabelle Customers e Orders, quindi fare clic su 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 usare il controllo LookupBox
Nella finestra Origini dati è possibile impostare il controllo da creare prima di trascinare elementi nel form.
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 (nel nodo Customers sotto la colonna Fax).
Fare clic sulla freccia a discesa nel nodo Orders e scegliere Dettagli dall'elenco di controllo.
Fare clic sulla freccia a discesa nella colonna CustomerID (nel nodo Orders) e scegliere Personalizza.
Selezionare LookupBox dall'elenco Controlli associati nella finestra di dialogo Personalizzazione dell'interfaccia utente dati.
Fare clic su OK.
Fare clic sulla freccia a discesa nella colonna CustomerID e scegliere LookupBox.
Aggiunta di controlli al form
È possibile creare i controlli associati ai dati trascinando elementi dalla finestra Origini dati in Form1.
Per creare controlli associati ai dati nel Windows Form
- Trascinare il nodo Orders dalla finestra Origini dati nel Windows Form e verificare che il controllo LookupBox venga usato per visualizzare i dati nella colonna CustomerID.
Associazione del controllo per eseguire la ricerca di CompanyName dalla tabella Customers
Per impostare le associazioni di ricerca
Selezionare il nodo Customers principale nella finestra Origini dati e trascinarlo nella casella combinata CustomerIDLookupBox in Form1.
Viene in questo modo impostato il data binding per visualizzare CompanyName dalla tabella Customers, mantenendo al contempo il valore CustomerID della tabella Orders. Per altre informazioni, vedere Procedura: creare tabelle di ricerca nelle applicazioni Windows Form.
Esecuzione dell'applicazione
Per eseguire l'applicazione
Premere F5 per eseguire l'applicazione.
Spostarsi all'interno di alcuni record e verificare che CompanyName venga mostrato nel controllo LookupBox.
Vedere anche
Attività
Procedura: impostare il controllo da creare per il trascinamento dalla finestra Origini dati
Concetti
Associazione di controlli Windows Form ai dati in Visual Studio
Preparazione dell'applicazione al ricevimento di dati
Recupero di dati nell'applicazione
Associazione di controlli ai dati in Visual Studio
Modifica di dati nell'applicazione