Newsgroup: it.comp.lang.visual-basic
Titolo: Treeview o listview con quale operare?

Allora inanzi tutto ringrazzio chi ha risposto al mio precedente post, ragazzi 
ho risolto *grazzie*.
La domanda può sembrare banale ma non lo è, sappiamo che il treeview serve a 
visualizzare degli schemi ad albero, mentre il listview serve appunto per 
visualizzare delle liste ai quali è possibile aggiungere delle colonne, io avrei 
la necessita di usare entrambe le 2 funzioni su un solo controllo, quindi una 
list view che mi possa consentire di ricreare al suo interno strutture ad 
albero,  un'esempio e l'elenco news di Mozzilla Thunderbird, dove compaiono i 
messaggi del server e se il messaggio ha ricevuto risposta viene inserito 
all'interno di un nodo in quella listview(almeno credo che sia tale controllo), 
esiste la possibilità di aggiungere "colonne" all'interno di una treeview oppure 
di aggiungere nodi all'interno di una listview? oppure c'è qualche stratagemma 
per fare qualcosa di simile?
grazzie in anticipo a chi mi darà una mano

"noizn" <noi...@SPAMyahoo.it> ha scritto nel messaggio
news:420fdce9$0$32346$5fc...@news.tiscali.it...

Tieni conto che anche una ListView supporta l'Indent, ti passo uno
stralcio di gestione dell'Indent relativo ad un ITEM della ListView, il
tutto
è documentato egregiamente su:
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/listview/reflist.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listview/structures/lvitem.asp
Purtroppo questo codice è assolutamente indicativo in quanto riferito al
controllo
ListView gestito da un Wrapper verso la Dll diretta.
Ovviamente servirà un controllo ImageList con le 2 Icone per l'effetto
Espanso e Collassato
che potrai gestire passando l'indice alla Funzione LV_SetItemStateEx per il
parametro iImage
della struttura LVITEM
Public Enum LVITEM_Mask
    LVIF_TEXT = &H1
    LVIF_IMAGE = &H2
    LVIF_PARAM = &H4
    LVIF_STATE = &H8
    LVIF_INDENT = &H10
    LVIF_NORECOMPUTE = &H800
End Enum
Public Enum LVItemStates
  lvisNoButton = 0
  lvisCollapsed = 1
  lvisExpanded = 2
End Enum
Type LVITEM
    mask As LVITEM_Mask
    iItem As Long
    iSubItem As Long
    state As LVITEM_States
    stateMask As LVITEM_States
    pszText As Long     '// LPCSTR
    cchTextMax As Long
    iImage As Long
    lParam As Long
    iIndent As Long
End Type
Private Function LV_SetItemStateEx(iItem As Long, iIndent As Long, dwState
As LVItemStates) As Boolean
   Dim lvi As LVITEM
   lvi.mask = LVIF_STATE Or LVIF_INDENT Or LVIF_IMAGE
   lvi.iItem = iItem
   lvi.state = dwState * (2 ^ 12)
   lvi.iImage = dwState - 1
   lvi.stateMask = LVIS_STATEIMAGEMASK
   lvi.iIndent = iIndent
   LV_SetItemStateEx = SendMessage(LW.hWnd, LVM_SETITEM, 0, lvi)
End Function
Trovi un'ottimo Demo per VB quì:
http://btmtz.mvps.org/
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

"noizn" <noi...@SPAMyahoo.it> ha scritto

tipo oe6 il riquadro con l'elenco dei messaggi ?
non ho mai capito se funziona, ma su 
vbaccelerator.com
 direi ci fosse un
listview potenziato.
ecco
http://www.vbaccelerator.com/home/VB/Code/Controls/ListView/article.asp
magari da' un'occhiata anche a sgrid2.
hth, ciao, j.

Io ti suggerirei di andare su vbaccelerator e di cercare il multi-column 
treeview:
http://www.vbaccelerator.com/home/VB/Code/Controls/TreeView/Multi-Column_TreeView_Control/article.asp
-- 
Quando noi ignoranti eravamo di più, tutto era più bello...
(A. Celentano)
Per rispondermi in privato, togli prima l'immondizia dalla testa ;)