Domanda su listbox

venerdì 09 maggio 2008 - 12.33

crds Profilo | Newbie

Salve a tutti

In Vb6 c'era l'oggetto listbox che mi permetteva di fare:

Listbox1.AddItem "pippo" & "==>" & "pluto"
Listbox1.ItemData(iNd) = key

Dove pippo e pluto sono i campi prelevati da una base dati (ad esempio un foglio excel) e key è la chiave del record che espongo.

In questo modo, selezionando un elemento della listbox, avevo a disposizione subito la chiave che mi permetteva di andare a fare le operazioni che mi servivano.

Non ho trovato una corrispondenza in Vb2005 express

ovvero ho visto che posso fare
Listbox1.Items.Add("pippo" & "==>" & "pluto")

ma non sono riuscito a trovare dove poter mettere key

Qualcuno ha voglia di darmi uno spunto.

Grazie a tutti per la collaborazione

Lucifel Profilo | Junior Member

Io di solito la uso così:

ListBox1.DataSource = dt ListBox1.ValueMember = "ID" ListBox1.DisplayMember = "DESCRIPTION"

Dove dt è la mia datatable (che può essere un dataset o un array list o quello che vuoi tu) che deve avere almeno 2 campi: ID e DESCRIPTION

In ValueMember viene messa la chiave e in DysplayMember viene messo il testo da visualizzare

Nel momento in cui vuoi recuperare l'id della riga selezionata basta che tu faccia:

id = ListBox1.SelectedValue

Spero sia quello che ti serve
Ciao

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

crds Profilo | Newbie

>Io di solito la uso così:
>
>
>ListBox1.DataSource = dt
>ListBox1.ValueMember = "ID"
>ListBox1.DisplayMember = "DESCRIPTION"
>
>
>Dove dt è la mia datatable (che può essere un dataset o un array
>list o quello che vuoi tu) che deve avere almeno 2 campi: ID
>e DESCRIPTION
>
>In ValueMember viene messa la chiave e in DysplayMember viene
>messo il testo da visualizzare
>
>Nel momento in cui vuoi recuperare l'id della riga selezionata
>basta che tu faccia:
>
>id = ListBox1.SelectedValue
>
>Spero sia quello che ti serve
>Ciao
>
>Diego
>-----------------------------------
>Avanti sempre e comunque!
>-----------------------------------

Ni.

Prima di tutto nella mia listbox espongo i dati di due Db(un sqlserver e un foglio excel), ovvero espongo i dati del db + quelli presenti in più sul file Excel (che non contiene necessariamente tutto quanto presente sul dv)

Quindi prima carico i dati da db e poi quelli da excel; i dati che devo utilizzare sono tre: la chiave che è un numerico, la tipologia che può essere la stessa (ad esempio dvd,cd etc) e la descrizione (che comunque potrei avere doppia perchè potrei avere la stessa descrizione per tipologie diverse).

In più il file excel non è posizionale, ma lo cerco con un openfile dialog.

Al momento risolvo con duel listbox, di cui una non visibile che contiene le chiavi, ma è una soluzione che non mi piace

Lucifel Profilo | Junior Member

>>Io di solito la uso così:
>>
>>
>>ListBox1.DataSource = dt
>>ListBox1.ValueMember = "ID"
>>ListBox1.DisplayMember = "DESCRIPTION"
>>
>>
>>Dove dt è la mia datatable (che può essere un dataset o un array
>>list o quello che vuoi tu) che deve avere almeno 2 campi: ID
>>e DESCRIPTION
>>
>>In ValueMember viene messa la chiave e in DysplayMember viene
>>messo il testo da visualizzare
>>
>>Nel momento in cui vuoi recuperare l'id della riga selezionata
>>basta che tu faccia:
>>
>>id = ListBox1.SelectedValue
>>
>>Spero sia quello che ti serve
>>Ciao
>>
>>Diego
>>-----------------------------------
>>Avanti sempre e comunque!
>>-----------------------------------
>
>Ni.
>
>Prima di tutto nella mia listbox espongo i dati di due Db(un
>sqlserver e un foglio excel), ovvero espongo i dati del db +
>quelli presenti in più sul file Excel (che non contiene necessariamente
>tutto quanto presente sul dv)
>
>Quindi prima carico i dati da db e poi quelli da excel; i dati
>che devo utilizzare sono tre: la chiave che è un numerico, la
>tipologia che può essere la stessa (ad esempio dvd,cd etc) e
>la descrizione (che comunque potrei avere doppia perchè potrei
>avere la stessa descrizione per tipologie diverse).
>
>In più il file excel non è posizionale, ma lo cerco con un openfile
>dialog.
>
>Al momento risolvo con duel listbox, di cui una non visibile
>che contiene le chiavi, ma è una soluzione che non mi piace
>
>

Quella soluzione va bene anche x te.
La listBox può contenere 1 valore come chiave e 1 valore come visualizzazione.
Se carichi i dati da 2 sorgenti diverse ti dovresti creare una datatable ad hoc.

Che so:
La tua datatable ha come campi:
id, cd/dvd, descrizione
dove la descrizione è formata dalla descrizione estratta e dalla scritta cd/dvd

Quando scarichi da db fai delle insert in questa datatable e quando scarichi da excel modifichi i campi della datatable.

Una volta che hai la tua datatable completa allora la associ alla listbox.

Io farei così...

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5