Вы не должны рисовать прямо в своем окне в ваших обработчиках событий - все рисование должно быть в вашем обработчике событий Paint.
Вы можете сделать гораздо больше, чтобы она работала хорошо, но ядро техники, которая вам нужна, это:
Чтобы переместить прямоугольник, когда пользователь перетаскивает мышь, вы должны обрабатывать события перемещения мыши. Каждый раз, когда вы получаете один, вам нужно Invalidate (), чтобы вызвать перерисовку вашего окна. В вашем обработчике Paint, если кнопка мыши нажата, найдите указатель мыши и нарисуйте прямоугольник в этом месте.
Это поможет вам начать, но у него будет несколько проблем - окно будет мерцать, поскольку оно постоянно перерисовывается, и оно может быть немного медленным.
Есть и другие способы улучшить это, в том числе:
Только делает недействительными те части формы, которые вам нужны (откуда нужно стереть старый прямоугольник и где нужно нарисовать новый прямоугольник)
После Invalidate () немедленно вызовите Update (), чтобы перерисовка произошла как можно скорее
рендеринг с "двойной буферизацией" и / или сохранение содержимого окна в закадровом растровом изображении, чтобы можно было повторно визуализировать фон с прямоугольником сверху быстрее и без мерцания. (Но это довольно продвинутая техника).