2009-09-17 2 views
3

Дело в том, что у меня есть графика, изображаемая в форме, например, прямоугольник, и я хочу, чтобы захватить, когда точка попадает в поля thees. Итак, я пытаюсь найти корриды для этих прямоугольников, но, как таковые, коорды в форме, они не соответствуют тем, у кого есть местоположение мыши.Найти координаты для точки на экране?

Так что я задаюсь вопросом, есть ли способ найти координаты на экране, которые точка имеет на экране, а не в форме или контроллере?

+0

Я не могу понять, что вы хотите сделать, можете ли вы объяснить более наглядно? –

+0

Проводка немного кода, показывающего, что вы в настоящее время используете, поможет нам ответить на ваш вопрос :-) –

+0

Попробуйте и перепишите сообщение, так как Ахмед я не совсем понимаю. – Cristina

ответ

7

Каждый элемент управления hs PointToFoo для преобразования. Обратите внимание, что вы должны назвать это от родительского объекта, который это место, которые вы хотите:

Point scrPos = this.PointToScreen(panel1.Location); 

В качестве альтернативы, вы можете получить экран панели координирует с:

Point scrPos = panel1.PointToScreen(new Point(0,0)); 

Обратите внимание, что вышеуказанные два примера может Gve другой результат из-за пограничного размера панели.

+0

Отлично! сейчас я могу использовать Point scrPos = menuItemForm.PointToScreen (mSize.Location); , чтобы найти точку, в которой расположен прямоугольник mSize, и там, обнаружив мышь для этого прямоугольника. – user170644

+0

может не работать все время. Проверьте этот дубликат сообщения: http://stackoverflow.com/questions/4768677/c-sharp-how-to-get-the-coordinates-of-a-specific-point-on-screen-not-mouseloca/20688514#20688514 – dmihailescu

0

Если вы используете графический объект для формы, вызывая this.CreateGraphics() в форме, то координаты, используемые при рисовании прямоугольника, должны быть точно такими же, как те, которые были возвращены событием click в форме.

0

Знаете ли вы, что координирует ваш указатель? Вы можете получить координаты для своего окна с вызовом GetWindowRect() и вычесть верхнюю/левую часть от курсора мыши для получения координат клиента.

Я, кажется, помню, что есть функция сделать это для вас на самом деле, но прошло какое-то время с тех пор, как я ругался в пользовательских элементах управления графическим интерфейсом.

Смежные вопросы