Drag'n'Drop с возвращением - C#
Формулировка задачи:
Здравствуйте всем! Очень надеюсь на помощь. Пишу пасьянс "4 линии" на С#, и не могу сообразить, как сделать так, чтобы при перетаскивании карты на неверную позицию, она возвращалась в исходное положение?
Решение задачи: «Drag'n'Drop с возвращением»
textual
Листинг программы
//Берем карту private void cards_MouseDown(object sender, MouseEventArgs e) { if (MouseButtons == MouseButtons.Left) { PictureBox mySender = sender as PictureBox; isDragging = true; currentX = e.X; currentY = e.Y; tmp = mySender.Location; } } //Двигаем карту private void cards_MouseMove(object sender, MouseEventArgs e) { PictureBox mySender = sender as PictureBox; mySender.BringToFront();// На передний план!!! О_о if (isDragging) { mySender.Top = mySender.Top + (e.Y - currentY); mySender.Left = mySender.Left + (e.X - currentX); } } //Отпускаем карту private void cards_MouseUp(object sender, MouseEventArgs e) { isDragging = false; PictureBox mySender = sender as PictureBox; int differ_X, differ_Y; differ_X = empty_card.X - mySender.Location.X; differ_Y = empty_card.Y - mySender.Location.Y; if ((Math.Abs(differ_X) > 0 && Math.Abs(differ_X) < 30) && (Math.Abs(differ_Y) > 0 && Math.Abs(differ_Y) < 30)) { mySender.Location = empty_card; empty_card = tmp; } else { mySender.Location = tmp; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д