When your code draws the card image it draws it directly to your
Form. The effect of this depends on whether your Form's Autoredraw propewrty
is set to True or False. Presumably you will have set it to True. If you
haven't then I would strongly suggest that you do so, otherwise the drawn
image will disappear when the user drags the Form about the display and
drags it over "the edge". Anyway, as I was saying, the image is drawn into
your Form, and if you cover it up with something else (an image control in
your example) then that's all it will be - a drawing of a card covered over
by something else. To "undraw" it you need to draw something else to your
Form directly over the top of the drawing of the card. You can use
PaintPicture or the appropriate API function to do this. However, I would
suggest that you tacjkle the entire job in a quite different way and instead
of drawing a card make a "sprite" of it. You could do this at run time of
the Form Load event so that you start off with an array of 52 "sprite
drawings" plus one "mask drawing" that you can use for all of them. In that
way you will be able to smoothly animate your cards over any background you
want (a picture if you wish). You can then get your cards to glide smoothly
from one position to another instead of just suddenly appearing at the new
position.