Простой пример перемещения стандартной кнопки в зависимости от положения мыши здесь .
Вы можете создавать элементы управления, которые наследуются от существующих элементов управления, чтобы упростить жизнь.
Проверьте это из MSDN
Что касается перемещения элементов управления и тому подобного в форме, вы можете создавать события, которые переопределяют и удерживают событие мыши и фактически изменяют значения местоположения (x, y) на основе движения мыши. Вы также можете взаимодействовать с любыми другими свойствами, в зависимости от движения мыши или изменения цвета и значения текста ...
Например, если я хочу изменить цвет кнопки при наведении мыши. Я бы переопределил указатель мыши на методе моего пользовательского элемента управления, который наследуется от кнопки. Я установлю цвет в этом методе, когда он будет захвачен.
Вы даже можете переопределить onPaint и обрабатывать все рисунки самостоятельно.