I am trying to take a snapshot, or a copy of a control, for a bitmap. I'm wanting to do this to a listbox, but part of the listbox may be hidden.
On the mouse_down event I need to get the snapshot of the whole listbox (even though parts may be hidden behind other controls, I need the whole listbox) and draw it to the screen in the same location as the original listbox (but the hidden parts still stay hidden behind the other controls on the bitmap).

On the mouse_move event I need to move the snapshot up/down based on mouse movement. This also moves the listbox up/down and this code is done. I will just move the snapshot of the listbox the same way as the original listbox.
On the mouse_up event, I will dispose the bitmap and display the original listbox again.

I am doing this because moving a listbox up/down is really messy. It's a custom drawn listbox and looks horrible moving, so I figured if I could snapshot it, move the bitmap while visible, and listbox behind the scenes, it will flow smoothly and no one would notice I am scrolling a bitmap instead.

Double buffering the form and listbox didn't help . I've done some graphics.drawstring before, but not much on other graphics.