Assuming that your pictures and icons are being loaded when you run your application (hence they don't appear on another machine), there are various solutions.
1. Instead of saying in your code (for example) Picture1.Picture = LoadPicture("c:\my app\images\logo.jpg"), say something like Picture1.Picture = LoadPicture(App.Path & "\images\logo.jpg"). This will then load a picture based on the location of your application. When you copy your application onto another machine, you only need to copy the images across too and it will be able to find them.
2. Check out the ImageList control which ships with VB, it's part of the Microsoft Windows Common Controls. This can be used to hold your icons for example, and then when you want to use one you can say Picture1.Picture = ImageList1.ListImages("icon_name_here").Picture. (This is just an example, you can do much more with an ImageList control such as transparencies and so on). ImageLists are geared more towards small images such as toolbar buttons and icons - if your pictures are large then that's probably not the answer.
3. Simply store your images in a hidden array of picture boxes. At design time, create a picture box, load a picture into it and set the Visible property to false. When you want to show it, you can either transfer the image into the picture box that is visible to the user by saying Picture1.Picture = PictureHidden(3).Image, or simply change the Visible property to True so that the user then sees the image.
4. Yes, you can use a resource file but that's probably the most technical of all three solutions because you need to independently compile a resource file and then add it into your VB application. However it's also the neatest solution.
- Andy
___________________________________________________________________
If you think nobody cares you're alive, try missing a couple of mortgage payments