Newsgroup: it.comp.lang.visual-basic
Titolo: [vb.net 2003] Listbox vs. listview

Se con la listbox per aggiungere un array di tipo string metto 
semplicemente:
listbox1.Items.AddRange(array1)
sostituendo listbox1 con listview1 non funziona, nonostante ci sia 
AddRange anche per la listview.
Come faccio ad agiungere un array in una listview?
Christian

 ha scritto nel messaggio 
news:MPG.1e612269d...@news.tin.it...

Mentre la listbox, per la proprietą AddRange,
necessita di un Array tipo Object;
la listview si aspetta un array di listviewitem.
Tipo
 Dim li(2) As ListViewItem
li(0) = New ListViewItem
li(0).Text = "AAAAA"
li(1) = New ListViewItem
li(1).Text = "BBBBBB"
li(2) = New ListViewItem
li(2).Text = "CCCCC"
Me.ListView1.Items.AddRange(li)
Se posizioni il cursore su AddRange e premi f1,
la guida visualizza un esempio esplicativo.
Ave
giuseppeD
---
CCR 

 la guida visualizza un esempio esplicativo.
Grazie, il tuo esempio funziona, purtroppo non ho ancora la necessaria 
dimestichezza per ottenere il massimo dell'aiuto dall'help in linea, ma 
me la sto facendo.   ;-)
Ora facciamo un passo in avanti.
Il tuo esempio:                Quello che mi serve:
array fisso                    array dinamico
monodimensionale               bidimensionale
Quindi rendiamo bidimensionale il tuo esempio:
da fisso e monodimensionale:  Dim li(2) As ListViewItem
a dinamico e bidimensionale:  Dim li(,) As ListViewItem
Cosě sembra funzionare, ora proviamo a popolare l'array:
ReDim li(0, 0)
li(0, 0) = New ListViewItem
li(0, 0).Text = "prova1"
Me.ListView1.Items.Addrange(li)
... perň c'č un errore nell'ultima riga, problemi di conversione tra 1 e 
2 dimensioni, ma nell'esempio ho lavorato solo con 2 dimensioni.
Come posso risolvere il problema?
Christian

 Come posso risolvere il problema?
Presumo che il tentativo è per un utilizzo pratico del ListView
Il componente offre maggiori potenzialità di una TextBox,
quindi necessita un tempo di impegno maggiore per capire il funzionamento.
Copia e incolla l'esempio riportato nella guida.
Sostituisci le immagini con es. alcune che si trovano in c:\windows, tipo 
Pesca.bmp
Piume.bmp.
Prova a modificare, aggiungere e togliere..
Ave
giuseppeD
---
CCR

 Prova a modificare, aggiungere e togliere..
Prima di eseguire il tuo valido consiglio, vorrei fare un altro 
ragionamento, ti prego di seguirmi.
Se la listview accetta solo matrici ad 1 dimensione (cosa per me 
assurda, ma mi adeguo) è interessante e probabilmente utile il fatto di 
poter assegnare alle colonne un nome utilizzabile nel codice (le colonne 
sono chiamate "insiemi" da vb).
Quindi logica dice che si possono integrare le matrici monodimensionali 
alle colonne, assegnando una matrice ad ogni colonna, lavoro da 
eseguirsi per ogni colonna da visualizzare. Se così fosse, non ho 
trovato nessun esempio nell'help.    :-(
Ragionamento corretto?
Christian

 Ragionamento corretto?
Non mi sembra che puoi assegnare un nome alle colonne,
se guardi l'esempio, le colonne successive alla prima, chiamate secondarie, 
sono delle SubItems
Comunque se vuoi utilizzare delle matrici.
Sempre l'esempio:
costruisci una matrice ad una dimensione,
dim l1(2) as string
............
Dim item1 As New ListViewItem(l1, 0)
Ave
giuseppeD
---
CCR 

 Dim item1 As New ListViewItem(l1, 0)
In ogni caso i tuoi consigli sono stati preziosi, ora sono in grado di 
creare una serie di ListViewItem e di aggiungere vari SubItems. Non ci 
sarei mai riuscito se tu non mi avessi invitato a ricopiarmi il codice 
scritto nell'help e modificare il codice per fare delle prove. Nel 
contempo ho anche migliorato la conoscenza dell'help.
Superato questo scoglio, è sorto un altro problema, ma credo che sia 
nettamente più facile da risolvere, ovverosia devo riempire l'Item ed i 
SubItem con del testo presente in listbox.
Se io scrivo:
Dim a As String
Dim b(0) As ListViewItem
a = TextBox1.Text
b(0) = a
Mi dice che non può convertire il tipo string in 
"System.Windows.Forms.ListViewItem".
Come si fa a convertirlo?
Christian

 "System.Windows.Forms.ListViewItem".
b(0) è loggetto ListViewItem
presumo che la stringa vada abbinata ad una proprietà dell'oggetto
ListViewItem.
Quindi prova, dopo la parentesi ), ad aggiungere un puntino, si
presenteranno proprietà e metodi.
Ave
giuseppeD
---
CCR
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 presenteranno proprietą e metodi.
Non dubito che sia un buon suggerimento, ma le ho provate tutte e non 
sembra che nessuno vada.
Quello che mi sembra pił rispondente č .Text, ma mi dą errore 
"...NullReferenceException...Riferimento a un oggetto non impostato su 
un'istanza di oggetto".
Christian

 un'istanza di oggetto".
Dim b(0) As ListViewItem
b(0) = New ListViewItem 'presumo che necessita di essere istanziato
  b(0).Text = a
Ave
giuseppeD
---
CCR 

   b(0).Text = a
Ma che stupido che sono, e dire che me lo avevi già fatto presente che 
il nuovo Item va istanziato col ListViewItem e già lo ho approntato su 
un'altra parte del codice.     :-(
Ora questo scoglio è stato superato, domani proseguo col programma. 
Grazie mille.
Christian