ImageList не идеален, когда у вас есть форматы изображений, поддерживающие альфа-прозрачность (по крайней мере, так было раньше; я не часто их использовал в последнее время), так что вам, вероятно, лучше загрузить значок из файла на диске или с ресурса. Если вы загружаете его с диска, вы можете использовать этот подход:
' Function for loading the icon from disk in 48x48 size '
Private Function LoadIconFromFile(ByVal fileName As String) As Icon
Return New Icon(fileName, New Size(48, 48))
End Function
' code for loading the icon into a PictureBox '
Dim theIcon As Icon = LoadIconFromFile("C:\path\file.ico")
pbIcon.Image = theIcon.ToBitmap()
theIcon.Dispose()
' code for drawing the icon on the form, at x=20, y=20 '
Dim g As Graphics = Me.CreateGraphics()
Dim theIcon As Icon = LoadIconFromFile("C:\path\file.ico")
g.DrawIcon(theIcon, 20, 20)
g.Dispose()
theIcon.Dispose()
Обновление: если вместо этого вы хотите использовать значок в качестве встроенного ресурса в вашей сборке, вы можете изменить метод LoadIconFromFile, чтобы он выглядел следующим образом:
Private Function LoadIconFromFile(ByVal fileName As String) As Icon
Dim result As Icon
Dim assembly As System.Reflection.Assembly = Me.GetType().Assembly
Dim stream As System.IO.Stream = assembly.GetManifestResourceStream((assembly.GetName().Name & ".file.ico"))
result = New Icon(stream, New Size(48, 48))
stream.Dispose()
Return result
End Function