Переместить кнопку на C # - PullRequest
       1

Переместить кнопку на C #

0 голосов
/ 02 ноября 2018

Я работаю над упражнением, в котором мне нужно перемещать кнопку мышью, но мне нужно сохранить первое местоположение этой кнопки.
это мой код:

private Point location => new Point(button1.Location.X, button1.Location.Y);
private void button1_MouseDown(object sender, MouseEventArgs e)
    {
        isMouseDown = true;
    }
    private void button1_MouseMove(object sender, MouseEventArgs e)
    {
        if(isMouseDown)
        {
            button1.Left = e.X + button1.Left - (button1.Width / 2);
            button1.Top = e.Y + button1.Top - (button1.Height / 2);
        }
    }

но значение местоположения меняется после перемещения кнопки, что я должен сделать, чтобы сохранить первое значение.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Вы вызываете функцию для чтения переменной 'Location', вам просто нужно assign значение.

private Point location = new Point(button1.Location.X, button1.Location.Y);

Также вам нужно событие mouseup, в котором вы установите:

isMouseDown = false;

В противном случае это будет верно навсегда.

0 голосов
/ 02 ноября 2018

Just

private Point location => new Point(button1.Location.X, button1.Location.Y);
private void button1_MouseDown(object sender, MouseEventArgs e) {
    isMouseDown = true;
    location.X = button1.Location.X;
    location.Y = button1.Location.Y;
}

Если вам нужно сохранить все позиции, вы можете использовать список точек

private List<Point> locations = new List<Point>();
private void button1_MouseDown(object sender, MouseEventArgs e) {
    isMouseDown = true;
    locations.Add(new Point(button1.Location.X, button1.Location.Y)); // where locations[0] is your first point
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...