Как я могу использовать MouseEventArgs в другом методе?

У меня есть окно изображения, которое мне нужно, чтобы получить значения положения мыши в поле после щелчка мыши в нем. Я могу сделать это, используя этот код:

public void pictureBox1_MouseClick(object sender, MouseEventArgs e)
    {

        int CurX;
        int CurY;
        CurX = e.X;
        CurY = e.Y;
    }

Теперь мне нужно использовать эти значения CurX и CurY, чтобы преобразовать их в относительные положения окна изображения, т. е. четыре угла окна изображения имеют координаты широты и долготы GPS, поэтому приблизительные широта и долгота могут быть рассчитаны по положению события мыши. щелкните в поле изображения.

Вычисленные значения проверяются по массиву другим методом, а значения выбираются из массива на основе приблизительных значений широты и долготы.

Как я могу получить эти значения CurX и CurY из pictureBox1_MouseClick в другой метод, а затем использовать другое событие MouseClick и повторить процесс?

Большое спасибо, Стив.


person Steve Galvin    schedule 20.04.2017    source источник


Ответы (2)


Использовать:

private int curX;
private int curY;

public void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
    curX = e.X;
    curY = e.Y;
}

Затем вы можете использовать curX и curY в других местах класса.

person Ive    schedule 20.04.2017

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

person Kingsman    schedule 20.04.2017
comment
Глобальные переменные почти всегда являются плохим выбором. Вам нужно больше информации от спрашивающего, чтобы дать хороший ответ, потому что вы не знаете, почему он не может их использовать. Например, вы не будете использовать глобальные переменные, если оба метода находятся в одном классе. - person Mighty Badaboom; 20.04.2017
comment
Я знаю, что глобальные переменные плохие, но иногда они необходимы. Ты прав, приятель, было бы неплохо получить больше информации, но я подумал, что это поможет ему. - person Kingsman; 20.04.2017
comment
я также думаю, что в Winform GDI + единственный способ поделиться местоположением мыши - это глобальные значения. - person Lei Yang; 20.04.2017
comment
Большое спасибо.... !!! Я предполагаю, что решение @Ive использует глобальные переменные.. ???? Это мой первый опыт ООП и отсутствие глобальных переменных в качестве «стандартного» способа передачи аргументов. Я немного растерялся... Тем не менее... Я только что прошел ускоренный курс по событиям и делегатам, так как я думал, что это будет ответ. Что такое Winform GDI+, о котором упоминал Лей? - person Steve Galvin; 21.04.2017