The VB6 and .NET ImageList controls differ in a minor but important way. If you modify the MaskColor property of the VB6 ImageList control the new setting affects all the images that were previously loaded inside the control. By contrast, if you assign the TransparentColor property of the .NET ImageList control the new setting affects only the images that are loaded after the assignment.
In practice this detail isn’t very important, because you rarely need to change the transparent color for images after the form has been loaded. If you do, however, you can work around this limitation by unloading all the images from the VB6ImageList control, then changing the MaskColor property, and finally reloading the images, as this code demonstrates
Dim images As New List(Of VB6ListImage)
images.AddRange(Me.ImageList1.ListImages)
Me.ImageList1.ListImages.Clear()
Me.ImageList1.MaskColor = Color.Aqua
For Each img As VB6ListImage In images
Me.ImageList1.ListImages.Add(, img.Key, img.Picture)
Next
Notice, however, that images already assigned to control properties won’t be affected by this operation.