If loading the image will take long enough that it's worth showing a progress bar, like if it's being downloaded from the Web, then you should be calling the LoadAsync method of the PictureBox. See the MSDN help topic for the PictureBox.LoadProgressChanged event for a code example of what you want.