Измените опорную точку перемещения объекта, используя событие Click - PullRequest
0 голосов
/ 03 мая 2018

Мне нужна помощь: когда я пытаюсь выполнить событие щелчка , должна быть расположена другая точка объекта графического блока, а не в верхнем левом углу .

Есть ли способ изменить опорную точку перемещения объекта ?

Пример:

Точка, обозначенная как " Желтый круг ", является контрольной точкой, в которой объект " pictureBoxRed " находится в любом событии щелчка мыши .

Точка, обозначенная как Black Star , - это точка, указывающая, например, позицию, по которой нужно щелкнуть.

Если щелкнуть левой стрелкой точку выборки, обозначенную как " Black Star ", ее необходимо переместить из точки " Yellow Circle " в " pictureBoxRed"объект, а не верхний левый угол объекта" pictureBoxRed".

Спасибо за вашу помощь.

Вот пример анимации Gif об этой проблеме

    private void Exmp(object sender, MouseEventArgs e)
    {
        GeneralClick(e.Button, e.X, e.Y);
    }

    PictureBox picRed = new PictureBox();
    PictureBox picBlue = new PictureBox();

    private void GeneralClick(MouseButtons sender, int X, int Y)
    {
        if (sender == MouseButtons.Left)
        {
            picRed.Location = new Point(X, Y);
            var arrayer = this.PointToScreen(picRed.Location);
            arrayer = picBlue.PointToClient(arrayer);
            picRed.Parent = picBlue;
        }
    }
        public Form1()
    {
        InitializeComponent();
        picBlue.MouseClick+= new MouseEventHandler(Exmp);
    }
...