Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] primo elemento listbox con datasource

Ciao a tutti,
ho una listbox che popolo leggendo i dati da db. Ho impostato 
DisplayMember, ValueMember e DataSource.
Ho settato la proprietà DropDownStyle a DropDownList in modo che 
l'utente non possa inserire valori.
Quando la visualizzo vedo nel primo campo il primo valore letto nel 
database, io invece vorrei metterci un "Seleziona il valore".
Ho provato con listbox.items.add() ma mi dice che quando è selezionata 
una datasource non posso modificare gli elementi.
Ho provato anche a recuperare la datasource dopo aver popolato la 
tendina, aggiungere un elemento alla collezione e riassegnare la 
datasource alla listbox ma non funziona, l'oggetto che aggiungo non si vede.
L'unica alternativa che mi viene in mente è quella di scrivere nel db 
una riga con "Seleziona il valore" ma non va bene perchè vorrrei 
ordinare gli elementi per nome ...
C'e' qualche soluzione?
grazie, ciao
Mauro

 Mauro
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCP
http://mvp.support.microsoft.com
blog @ 
http://milestone.topics.it
whynot [ at ] topics [ dot ] it

 impostarla come sorgente dati della listbox
Non c'e nessun altro modo?
Ci avevo pensato anche io ma il problema è che la listbox la popolo 
tramite una funzione query_to_listbox(listbox, sql,debug=false) che ho 
memorizzato in una dll (assieme a tante altre) che data una query che 
ritorna due colonne mi popola la listbox mettendo come indice il valore 
della prima colonna e come "descrizione" il valore della seconda.
Per fare come mi suggerisci tu dovrei aggiungere un quarto parametro 
"elemento predefinito" da passare alla funzione quando voglio avere un 
parametro custom .... ma preferirei evitarlo se possibile.
grazie per l'aiuto, ciao
Mauro

 Il 23/06/2010 14.26, Mauro Servienti [MVP] ha scritto:
scusa...usa il pensiero laterale....come si faceva ai tempi del vb6
per fare apparire un texbox in una griglia!
Hai bisogno...a quanto ho capito....di una indicazione...."seleziona
un elemento" per l'uTonto che altrimenti non ti seleziona nulla?
due strade(e mezzo):
A) La via maestra...NULLA deve esssere indefinito in una GUI per
l'uTonto....(in quanto uTonto è maestro zen 12 livello nel creare
casini). Quindi è pre-selezionato il primo elemento....o l'ultimo che
ha selezionato nel form precedente...quello che vuoi!
Accanto mettici una etichetta...una asterisco...quello che vuoi...se
il tipo o la tipa è parecchio "duro" e lascia sempre il default!
b) La via sporca
Sovraimponi una label "Utonto non ti scordare di selezionare!!!" che
scompare appena l'utonto ci clicca sopra!...o quando seleziona
qualcosa!
b- e mezzo)
Se proprio devi customizzare....customizza!
Fatti una tua personale combobox.
Però per me qualcosa "non quaglia" nella tua logica!
Ovvio che se leggo un dato dal db e poi lo popolo la combo...per come
l'hai settata... si sveglia con il primo campo selezionato! Va anche
bene! Se hai messo
il vincolo dell'impossibilità di non inserire valori.....hai deciso
che scelga fra quelli validi!...ed hai deciso anche che non esista
l'incertezza!
Se non clicca su nulla è selezionato il primo!....
perchè vuoi far cliccare inutilmente il tuo operatore?
Clicca su un altro elemento della lista solo se non gli va bene il
primo!
Ora che anche noi programmatori contribuiamo ad "uTontizzare"
l'operatore....non ci facciamo del male da soli! .....per piacere!

 primo!
Uno pu� mettere una combo pure per far scegliere un campo Nullable
comunque, secondo me la possibilit� di non selezionare pu� essere
contemplata, soprattutto se nessun elemento della combo riflette
l'attributo reale.
Es. ho una combo con Celibe e Sposato, mi arriva un divorziato e non ho la
voce nella combo, ho una voce selezionata o l'ho selezionata per sbaglio
mentre cercavo "divorziato", come faccio a mettere almeno un dato nullo a
quel punto?

 perchè vuoi far cliccare inutilmente il tuo operatore?
Lo volevo fare perchè quella tendina comanda la scelta di altre due in 
sequenza (la seconda dipende da quanto ho scelto nella prima e la terza 
dipende dalla seconda) e volevo che uno non si trovasse già tutto 
precompilato.
Inoltre la seconda viene popolata "OnChange" della prima quindi al primo 
caricamento della form non vedo popolate le tendine collegate (ma questo 
me lo risolvo)
Tutto sommato credo che nel mio caso sia accettabile avere il primo 
valore pre-selezionato e poi se uno vuole se lo cambia.
grazie, ciao
Mauro