Один из способов сделать это - добавить ваши объекты и изменить их местоположение на основе координат мыши во время движения. Выполнение некоторых дополнительных настроек и центрирование движения местоположения сделает изменение местоположения более плавным. Вот пример (в C #):
Например, у вас есть класс для объекта.
public class Object {
string _name;
int sizeX;
int sizeY;
int locationX;
int locationY;
public Object(string name) {
locationX = 0;
locationY = 0;
switch(name) {
case "chair":
_name = name;
sizeX = 50; //Predifined width of the chair object
sizeY = 70; //Predifined height of the chair object
case ... //Continue with the process
}
}
public void setLocation(int x, int y) {
locationX = x;
locationY = y;
}
}
Итак, теперь вы можете перейти в основную форму.
public void moveObject() {
Point coordinates = GetMouseCoordinates(); //There are a lot of ways.
chair.setLocation(coordinates.X, coordinates.Y);
}
Для более плавного движения сделайте это:
public void moveObject() {
MouseCoordinates coordinates = GetMouseCoordinates(); //There are a lot of ways.
chair.locationY = coordinates.Y + chair.sizeY / 2;
chair.locationX = coordinates.X + chair.sizeX / 2;
}
Это буквально самый простой способ. Существует множество способов создания перетаскиваемых объектов на WinForm . Однако, если вы хотите создать что-то вроде AutoCAD, 2D Animators и т. Д., Вам нужно создать систему координат / сетки, что действительно легко. Вам просто нужно создать классы и использовать концепцию объектно-ориентированного программирования (ООП) .