After clicking in the image control, setting its .Picture property no longer causes the WM_PAINT meassage to be sent to the userform. Must be a bug. You could send the message yourself (SendMessage API function), call the .RePaint method of the user form (will probably cause filckering), or set the .Visible property of the image control to False and back to True after setting the .Picture property(probably the way to go).