Newsgroup: it.comp.lang.visual-basic
Titolo: ListView

Come faccio a gestire righe e colonne in un oggetto ListView1 ?
Es. in una lista con 5 colonne e 5 righe voglio stampare il valore della
colonna 3 con riga variabile .
For i = 1 to ListView1.count
    msgbox ????????????
next i


For i = 1 To ListView1.Count
    MsgBox ListView1.ListItems(i).SubItems(2), vbInformation
Next i
la prima colonna č
ListView1.ListItems(i).Text
la seconda colonna č
ListView1.ListItems(i).SubItems(1)
ecc...
Ciao
Faber

Qualcuno, subclassando la listview, è mai riuscito a controllare l'effettiva
dimensione
che una colonna assume dopo che è stata ridimensionata?
Io sono riuscito al massimo, anche perchè non mi restituisce altro, ad
ottenere le dimensioni
prima del ridimensionamento, con la brutale questione che non riesco a
risolvere.
Ovvero se ho 1000 in totale e due colonne da 500 se ridimensiono a 600
volevo fare in modo
che b diventasse automaticamente di 400 in modo da non far comparire la
scollbar orizzontale.
Come fa outlook insomma.
Non ci sono riuscito.
Help??
Ciao Andrea


non ho mica capito cosa devi fare..
Faber

Premetto che non ho ben capito che vuoi fare :)) Perň prova a non dare le
dimesioni alla seconda colonna, da codice puoi provare cosě:
Listview.ColumnHeaders.Add , , "Colonna 1", 1600
Listview.ColumnHeaders.Add , , "Colonna 2"
In questo modo, la seconda
colonna si ridemensiona automaticamente in funzione dello spazio restante.
Se metti questo codice nell' evento form_load del form contente la listview
ogni volta che lo apri vedrai la secondo colonna adattatarsi
autimaticamente.
Tu perň parlavi di ridimesionare...non ho capito che, cmq
se una volta che modifichi con il mouse le dimesioni di una colonna vuoi
riportarla come era all' inizio devi farlo manualmente...almeno credo :))
ricalcolando le dimensioni di ogni singola colonna. Non mi č mai servita
questa cosa....
Saluti...
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha scritto nel messaggio
news:9f07h7$1nv$1...@serv1.iunet.it...

prova così :
Public Const LVM_FIRST As Long = &H1000
Public Const LVM_SETCOLUMNWIDTH As Long = (LVM_FIRST + 30)
Public Const LVSCW_AUTOSIZE_USEHEADER As Long = -2
Public Declare Function SendMessage Lib "user32" _
   Alias "SendMessageA" _
  (ByVal hwnd As Long, _
   ByVal wMsg As Long, _
   ByVal wParam As Long, _
   lParam As Any) As Long
private Sub ridimensionaListView(listview As listview)
   Dim Ridimensionamento As Long
   For Ridimensionamento = 0 To listview.columnheaders.Count - 1
      Call sendmessage(listview.hwnd, _
                       LVM_SETCOLUMNWIDTH, _
                       Ridimensionamento, _
                       ByVal LVSCW_AUTOSIZE_USEHEADER)
   next
end Sub

Giocando un po' con il sendmessage e gli header e listiitem type, e' possibile
aggiungere alcune cosette caruccie al listview che di proprieta' sue native
non sono supportate.
Una cosa caruccia e' il checkbox. Ora ho provato a smanazzare un pochino
per cercare un modo da codice di poter attivare/disattivare la spunta di
uno dei checkbox selezionati ... ma non ci si riesce ... 
o meglio stando all'msdn devi utilizzare la proprieta' del type listitem
stateitem e impostarla lvs_selected e mettere la state a -1 e la item su
quella che ti occorre ... 
mando un sendmessage ... ma non fa nulla.
Pero' sempre sull'msdn ... ti porta in confusione, perche' piu' sotto dice,
puoi usare anche quest'altro costrutto type per impostate le proprieta'
dello stateitem.
Depressione piu' totale.
Devo ancora farmi un po' di giri per i vari siti di vb, ma non e' che nel
frattempo qualcuno ha mai provato a fare questa cosa?
Grazie. 
Andrea
Saluti Andrea MORO
-- 
Posted from 
mail-1.tiscalinet.it
 [195.130.225.147] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG