Controlli a più elementi: utilizzo con i controlli ListBox e ComboBox
Aggiornamento: novembre 2007
In questa lezione, verrà descritto come aggiungere e rimuovere elementi dagli elenchi. Saranno inoltre fornite informazioni su come eseguire un'azione quando un utente seleziona un elemento in un elenco.
Quando si desidera fornire agli utenti un elenco di scelte, è possibile visualizzare l'elenco di elementi in un controllo ListBox o ComboBox.
Un controllo ListBox consente di visualizzare contemporaneamente più elementi, mediante lo scorrimento in un elenco. Quando un utente seleziona un elemento, viene evidenziato nell'elenco, come mostrato nelle figure seguenti.
Controllo ListBox
Il controllo ComboBox è una combinazione di una casella di testo e di una casella di riepilogo. Per impostazione predefinita, la casella combinata viene visualizzata come una casella di testo, ma quando l’utente fa clic sulla freccia a discesa, viene visualizzato un elenco. Quando un utente seleziona un elemento, viene evidenziato e visualizzato nella visualizzazione predefinita, come mostrato nelle figure seguenti.
Controllo ComboBox
Le procedure per l'aggiunta di elementi a caselle di riepilogo e a caselle combinate sono simili. Per aggiungere elementi è possibile utilizzare il metodo Add del controllo ListBox e il meotdo Add del controllo ComboBox.
Procedura
Per aggiungere elementi a una casella di riepilogo
Scegliere Nuovo progetto dal menu File.
Verrà visualizzata la finestra di dialogo Nuovo progetto.
Scegliere Applicazione Windows Form, quindi fare clic su OK.
Verrà aperto un nuovo progetto Windows Form.
Aggiungere il controllo ListBox al form, mantenendo il nome predefinito, ListBox1.
Fare doppio clic sul form per aggiungere il gestore eventi predefinito nell'Editor di codice.
Nel gestore eventi Form_Load, aggiungere il codice seguente per aggiungere elementi all'elenco.
With Me.ListBox1.Items .Add("red") .Add("blue") .Add("green") .Add("yellow") .Add("orange") .Add("pink") .Add("brown") .Add("black") End With
Premere F5 per eseguire il programma.
Il form viene visualizzato con un ListBox che contiene un elenco di colori.
Chiudere il programma.
Esecuzione di una azione quando l'elemento selezionato viene modificato
È possibile eseguire un'azione, ad esempio la visualizzazione di un colore, quando l'utente seleziona l'elemento corrispondente in una casella di riepilogo. A questo scopo, è necessario scrive codice nel gestore eventi SelectedIndexChanged di ListBox. Esiste anche un evento corrispondente per il controllo ComboBox.
È possibile determinare quale elemento nell'elenco è selezionato mediante la proprietà SelectedItem. È possibile assegnare il colore selezionato nell'elenco alla proprietà BackColor di un controllo utilizzando il metodo FromName dell'oggetto Color.
Per visualizzare il colore selezionato nella casella di riepilogo
Aggiungere un controllo TextBox al form, mantenendo il nome predefinito, TextBox1.
Fare doppio clic sul controllo ListBox per aggiungere il gestore eventi predefinito nell'Editor di codice.
Nel gestore eventi ListBox_SelectedIndexChanged, aggiungere il codice seguente per visualizzare il colore nella casella di testo. Accertarsi che la variabile ColorName contenga un valore prima di assegnarla alla proprietà BackColor della casella di testo.
Dim ColorName As String = CStr(ListBox1.SelectedItem) If ColorName IsNot Nothing Then Me.TextBox1.BackColor = _ System.Drawing.Color.FromName(ColorName) End If
Premere F5 per eseguire il programma.
Quando il form viene visualizzato, fare clic su un elemento nella casella di riepilogo per visualizzare nella casella di testo il colore selezionato.
Chiudere il programma.
Verifica della esistenza di un elemento nell'elenco
Quando si aggiungono elementi a un elenco, spesso non si desidera duplicare un elemento esistente. Ad esempio, si desidera che gli utenti siano in grado di copiare un elemento nella casella di riepilogo in una casella combinata facendo doppio clic sull'elemento. Se l'elemento è già presente nella casella combinata, non deve essere aggiunto. È possibile utilizzare il metodo Contains per determinare se l'elemento è già presente nella casella combinata. Esiste anche un metodo Contains corrispondente per una casella di riepilogo.
Per aggiungere elementi a una casella combinata
Aggiungere un controllo ComboBox al form, mantenendo il nome predefinito, ComboBox1.
Aprire l'Editor di codice facendo clic con il pulsante destro del mouse sul form e facendo clic su Visualizza codice.
Nell'Editor di codice, nell'elenco a discesa Nome classe fare clic su ListBox1.
Nell'elenco a discesa Nome metodo, fare clic su DoubleClick per creare il gestore eventi.
Nel gestore eventi ListBox1_DoubleClick, aggiungere il codice seguente per aggiungere elementi alla casella combinata. Perché è possibile avere una casella di riepilogo vuota, è necessario accertarsi che l'elemento selezionato non sia vuoto prima di aggiungerlo.
If ListBox1.SelectedItem IsNot Nothing Then If Not ComboBox1.Items.Contains(Me.ListBox1.SelectedItem) Then Me.ComboBox1.Items.Add(Me.ListBox1.SelectedItem) End If Me.ComboBox1.SelectedItem = Me.ListBox1.SelectedItem End If
Premere F5 per eseguire il programma.
Fare doppio clic sugli elementi nella casella di riepilogo e verificare che siano stati aggiunti alla casella combinata una sola volta.
Chiudere il programma.
Eliminazione di un elemento da una casella di riepilogo
È possibile eliminare un elemento da una casella di riepilogo utilizzando il metodo Remove. Ad esempio, anziché copiare gli elementi da una casella di riepilogo a una casella combinata, si potrebbe decidere di spostarli. È possibile spostare un elemento dapprima aggiungendolo alla casella combinata e quindi eliminandolo dalla casella di riepilogo.
Per eliminare elementi da una casella di riepilogo
Nel gestore eventi ListBox_DoubleClick, aggiungere il seguente codice prima dell'istruzione End If:
Me.ListBox1.Items.Remove(Me.ListBox1.SelectedItem)
Premere F5 per eseguire il programma.
Fare doppio clic sugli elementi nella casella di riepilogo e verificare che siano stati rimossi alla casella di riepilogo e aggiunti alla casella combinata.
Passaggi successivi
In questa lezione, è stato descritto come aggiungere e rimuovere elementi dagli elenchi. Inoltre, è stato illustrato come eseguire un'azione quando un utente seleziona un elemento. Nella lezione successiva, verrà descritto come utilizzare controlli per la visualizzazione della data e dell’ora.
Lezione successiva: Visualizzazione di date: utilizzo dei controlli MonthCalendar e DateTimePicker
Vedere anche
Riferimenti
Cenni preliminari sul controllo ListBox (Windows Form)
Cenni preliminari sul controllo ComboBox (Windows Form)
Altre risorse
Creazione dell'aspetto visivo del programma: introduzione a Windows Form