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;
                }
            
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5