Ok, PROKA, here is what is wrong with your display.
You are drawing
one rectangle in the forms Paint event. This in itself will only guarantee that
one rectangle will be visible on your form.
When you create a new rectangle in MouseUp, you invalidate the region where you place the rectangle, so, even though:
you may not have a rectangle in this region and
you can successfully place it so that the old rectangle is not invalidated
The fact remains that you are only drawing
one rectangle in the Paint event.
So, when the rectangles that you have drawn overlap, the one you are drawing now is the one that will dominate. Furthermore, the region of the rectangle is invalidated, therefore giving it an "opaque center".
I suggest that you create your own graphics object.
Dim GFX As Graphics
In Form_Load or somewhere on the form that runs first:
GFX = Me.CreateGraphics()
Now, instead of invalidating your display, which clears out a hole on the display,
just draw the rectangle.
GFX.DrawRectangle(Pens.Gray, RcDraw)
This solution will cause your rectangles to disappear when the form disappears or is obscured. If you want to keep the rectangles persistent, then keep an array of rectangles, go back to this solution you have already, with the Invalidate and the drawing in the Paint and, in the Pait event, use e.Graphics.DrawRectangles to draw a bunch of rectangles.