Это на самом деле довольно просто, если вы просто ищете координаты экрана.
// this probably should be in your form initialization
this.MouseClick += new MouseEventHandler(MouseClickEvent);
void MouseClickEvent(object sender, MouseEventArgs e)
{
// do whatever you need with e.Location
}
если вы строго ищете точку в браузере, вам нужно рассмотреть функции
browser.PointToClient();
browser.PointToScreen();
Итак, этот метод можно использовать, если вы точно знаете, где находится ваша форма (легко получить ее координаты) и где находится элемент управления веб-обозревателя (также легко получить координаты этого элемента, поскольку это просто элемент управления в вашей форме), а затем До тех пор, пока вы знаете, сколько пикселей слева или справа и сверху или снизу будет отображаться изображение, как только вы получите глобальные координаты щелчка мышью (что легко), вы можете предсказать, где оно было нажато на изображении. .
В качестве альтернативы, здесь есть несколько более страшных или уродливых способов сделать это ...
Вы можете использовать свойство ObjectForScripting для встраивания кода, чтобы сделать это в веб-браузере. Ужасно, если не сказать больше. MSDN имеет некоторую документацию по процессу здесь: http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.objectforscripting.aspx
Поскольку это действительно некрасиво, возможно, лучшим решением будет использование AxWebBrowser - это тоже некрасиво, но не так страшно.
Кроме того, я обнаружил, что кто-то хочет сделать это в документе PDF, и кто-то из MSFT говорит, что это невозможно, но на самом деле он пытается сказать, что он не встроен, даже если PDF-документ все еще можно предсказать с высокой точностью, где он был нажат, если вы используете первый метод, который я описал. В любом случае, вот этот пост: http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/2c41b74a-d140-4533-9009-9fcb382dcb60
Однако это возможно, и есть несколько способов сделать это, так что не пугайтесь той последней ссылки, которую я дал вам.
Кроме того, этот пост может помочь, если вы хотите сделать это в JavaScript:
http://www.devx.com/tips/Tip/29285
По сути, вы можете добавить атрибут к изображению с помощью методов, доступных в элементе управления веб-браузера, вы можете добавить что-то вроде onclick = "GetCoords ();" поэтому при щелчке функция JavaScript получает координаты, а затем вы можете использовать javascript для помещения значений в скрытое поле ввода (input type = "hidden"), которое вы можете добавить через элемент управления webbrowser или, если есть один уже на странице, вы можете использовать это. Итак, как только вы поместите координаты, используя javacript, в это поле ввода, вы можете легко получить значение в нем, используя элемент управления webbrowser, например:
webbrowser1.document.getElementById("myHiddenInputField").value
Это получит значение в этом поле, которое вы установили с помощью JavaScript. Кроме того, упомянутая мной функция «GetCoords ()» называется SetValues () в ссылке на метод javascript, которую я предоставил выше (на сайте devx.com), но я назвал ее GetCoords, потому что она имеет больше смысла и не хотела сбивать вас с толку с фактическим именем, которое они использовали, вы можете изменить его на любое имя, которое вы хотите. Вот javascript, который они использовали, он только получает координаты в переменную, не помещает ее в скрытое поле ввода, нам нужно сделать это дополнительно (в конце функции javascript SetValues / GetCoords).
function SetValues()
{
var s = 'X=' + window.event.clientX + ' Y=' + window.event.clientY ;
document.getElementById('divCoord').innerText = s;
}
Эти ребята просто сохраняют его в элементе div, который виден пользователям, но вы можете сделать div невидимым, если хотите использовать поле div, в этом нет никакого преимущества или недостатка, вам просто нужно чтобы установить для свойства visible значение false с помощью javascript или css, но все же проще использовать скрытое поле ввода, поэтому вам не нужно возиться с этим.
Дайте мне знать, как вы ладите.