ciao a tutti, sto sviluppando una parte di applicazione dove devo mostrare un'elenco di files e permettere all'utente di aprirne uno a sua scelta.
Uso VB6 SP6 su Windows 7 e ho un semplice form che contiene solo un oggetto ListView. La visualizzazione che preferirei avere è SmallIcon ma solo perchè con le altre (Icon o List) ho dei problemini che non riesco a comprendere. Vado per gradi:
definizione Listview:
With lvwDocFiles
'.Arrange = lvwAutoTop
.View = lvwSmallIcon 'lvwIcon 'lvwList
.GridLines = False
.Checkboxes = False
.AllowColumnReorder = False
.HideColumnHeaders = True
' .FullRowSelect = True
.LabelEdit = lvwManual
.Icons = imgFileIcons
.SmallIcons = imgSmallFileIcons
End With
Le due ImageList sono definite e riempite di immagini con le stesse posizioni e chiavi delle immagini (es. icona di file PDF ha come chiave pdf)
La listview si popola correttamente ma vedo che gli item non vengono posizionati a partire da alto/sinistra ma sembra che si tenga un certo offset. In particolare ho queste situazioni:
View=Icon
Perchè non allinea a sinistra?
View=SmallIcon
stessa domanda di prima
View=List
così è OK.
Infine se ridimensiono il form (e il form_resize fa in modo che la listview si ridimensiona automaticamente sempre a ricoprire tutta l'area del form) gli item nella listview possono sparire (ma sono sempre esistenti perchè se lo riallargo li trovo ancora anche se in posizioni randomiche)
Pensavo che ridimensionando la listview gli item si ridisponessero automaticamente e non sparissero oltre i limiti visibili.
il codice resize è:
Private Sub Form_Resize()
With lvwDocFiles
.Height = Me.Height
.Width = Me.Width
.Refresh
End With
End Sub
mentre il caricamento listview è:
LowBound = LBound(DocPhysicalFiles)
UppBound = UBound(DocPhysicalFiles)
For I = LowBound To UppBound
FileFullPath = fso.BuildPath(SourcePath, DocPhysicalFiles(I).OriginalFileName)
Extension = LCase(fso.GetExtensionName(FileFullPath))
If Len(Extension) = 0 Then
Extension = NULL_EXT
Else
If Len(Extension) > 3 Then Extension = Left(Extension, 3)
End If
ImageIndex = -1
For Each Item In img.ListImages
If Item.Key = Extension Then
ImageIndex = Item.Index
Exit For
End If
Next Item
If ImageIndex = -1 Then ImageIndex = NullImageIndex
lvwDocFiles.ListItems.Add , , DocPhysicalFiles(I).OriginalFileName, ImageIndex, ImageIndex
Next I
Avete qualche suggerimento? Sbaglio qualcosa?
Grazie
Stefano