Procedura dettagliata: creazione di un controllo utente Windows Form che supporta l'associazione dati di ricerca

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 Windows Form 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 Windows Form che supporta l'associazione 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 Form.

  • 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:

Creazione di un'applicazione Windows

Il primo passaggio consiste nella creazione di un'Applicazione Windows.

Per creare un nuovo progetto Windows

  1. In Visual Studio scegliere Progetto dal menu File.

  2. Denominare il progetto LookupControlWalkthrough.

  3. 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

  1. Scegliere Aggiungi controllo utente dal menu Progetto.

  2. 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

  1. Passare al controllo LookupBox per la visualizzazione codice. Scegliere Codice dal menu Visualizza.

  2. 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();
            }
        }
    }
    
    Nota importanteImportante

    Se si utilizza Visual C#, aggiornare lo spazio dei nomi in modo che corrisponda allo spazio dei nomi dell'applicazione. Se sono state seguite le convenzioni di denominazione in questa procedura, lo spazio dei nomi sarà LookupControlWalkthrough.

  3. Scegliere Compila soluzione dal menu Compila.

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

  1. Scegliere Mostra origini dati dal menu Dati.

  2. Nella finestra Origini dati selezionare Aggiungi nuova origine dati per avviare la Configurazione guidata origine dati.

  3. Selezionare Database nella pagina Scegliere un tipo di origine dati e scegliere Avanti.

  4. Nella pagina Seleziona connessione dati effettuare una delle seguenti operazioni:

    • 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. Per ulteriori informazioni, vedere Finestra di dialogo Aggiungi/Modifica connessione (generale).

  5. Se il database in uso richiede una password, selezionare l'opzione che consente di includere dati riservati, quindi scegliere Avanti.

  6. Scegliere Avanti nella pagina Salva la stringa di connessione nel file di configurazione dell'applicazione.

  7. Espandere il nodo Tabelle nella pagina Seleziona oggetti di database.

  8. 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

  1. Aprire Form1 nella finestra di progettazione.

  2. Espandere il nodo Customers nella finestra Origini dati.

  3. Espandere il nodo Orders (contenuto nel nodo Customers nella colonna Fax).

  4. Fare clic sulla freccia a discesa del nodo Orders e scegliere Dettagli dall'elenco dei controlli.

  5. Fare clic sulla freccia a discesa sulla colonna CustomerID (contenuta nel nodo Orders) e scegliere Personalizza.

  6. Selezionare LookupBox dall'elenco dei controlli associati nella finestra di dialogo relativa alle opzioni di Personalizzazione dell'interfaccia utente dati.

  7. Scegliere OK.

  8. 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 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 visualizzato nel controllo LookupBox.

Vedere anche

Attività

Procedura: impostare il controllo da creare per il trascinamento dalla finestra Origini dati

Concetti

Novità dello sviluppo di applicazioni di dati

Associazione di controlli Windows Form ai dati in Visual Studio

Associazione di controlli ai dati in Visual Studio

Altre risorse

Connessione ai dati in Visual Studio

Preparazione dell'applicazione al ricevimento di dati

Recupero di dati nell'applicazione

Modifica di dati nell'applicazione

Convalida dei dati

Salvataggio di dati

Cronologia delle modifiche

Data

Cronologia

Motivo

Maggio 2011

Corretto esempio di codice.

Commenti e suggerimenti dei clienti.