You have to use 2 imagelists, one for smallimages and one for largeimages to get the best result I think. (The listview has two properties, LargeImageList and SmallImageList)
Edit (found new information that worked when I tried):
This version are using interpolation to get the smaller thumb, should be better.
Dim BigIcon As Icon = Nothing
BigIcon = Icon.ExtractAssociatedIcon("c:\zebra.zip")
Dim largeimages As New ImageList
Dim smallimages As New ImageList
largeimages.Images.Add("1", BigIcon)
'Fix a smaller version with interpolation
Dim bm As New Bitmap(BigIcon.ToBitmap)
Dim thumb As New Bitmap(16, 16)
Dim g As Graphics = Graphics.FromImage(thumb)
g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
g.DrawImage(bm, New Rectangle(0, 0, 16, 16), New Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel)
g.Dispose()
bm.Dispose()
smallimages.Images.Add("1", thumb)
ListView1.SmallImageList = smallimages
ListView1.LargeImageList = largeimages
thumb.Dispose()
ListView1.Items.Add("Test", "Test", "1")
Stefan
2009-01-20 21:56:49