Thanks for the quick response! Much appreciated =]
So, the way to go is by Region (to detect collision). I will keep on the same track then...
For every shape that is drawn, I also create a Region object with the same size and position of the shape. Then, I use the Regions to determine wheter a click happened in some region or in a blank space. I guess this will solve the moving problem.
What about the textbox problem? Every line has a label on it, and this label must be editable... Drawing pixels is one thing, but how do I create component in run-time?
Perhaps I should just draw the word and save a Region, and when the region is selected the new text is prompted.I don't know how to make a textbox appear there either...
To create a component in run-time I tried the following:
1- Declared a new component (a Label for example)
2- Set position, text, name, font, color, etc of the component
3- Added the component to PictureBox.Controls
But the component won't show... Do I have to refresh or update the display somehow?
In the following picture, the "AB" text above the line must be editable on onclick event (sorry about the quality of the picture, it's just a concept hehe)

Thanks again for the fast and useful answers.