Как сзвязать контекстное меню ....

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Andrew_T
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.01.2010 (Пн) 16:04

Как сзвязать контекстное меню ....

Сообщение Andrew_T » 11.01.2010 (Пн) 16:12

с элиментами на веб-странице в элименте управления Webbrowser на visual basic 2008, например чтобы при щелчке правой кнопкой мышки по картинке на веб-странице появлялось контекстное меню с пунктом "сохранить изображение" а при щелчке на ссылке появлялось контекстное меню с пунктом "открыть в новой вкладке".Спасибо за ответы :D

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Как сзвязать контекстное меню ....

Сообщение Antonariy » 11.01.2010 (Пн) 16:14

Отлавливать событие документа oncontextmenu, смотреть, что за элемент оказался под курсором, показывать соответствующее меню.
Лучший способ понять что-то самому — объяснить это другому.

Andrew_T
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.01.2010 (Пн) 16:04

Re: Как сзвязать контекстное меню ....

Сообщение Andrew_T » 11.01.2010 (Пн) 16:30

Antonariy писал(а):Отлавливать событие документа oncontextmenu, смотреть, что за элемент оказался под курсором, показывать соответствующее меню.

Я примерно это и делаю вот код

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
AddHandler WebBrowser1.Document.ContextMenuShowing, AddressOf ContexShow
End Sub

Sub ContexShow(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
' А здесь то что делать, все свойства возвращяют nothing
e.FromElement.....
End Sub

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Как сзвязать контекстное меню ....

Сообщение Antonariy » 11.01.2010 (Пн) 16:52

Примерно, да не так.
Нужно объявить с событиями переменную типа HTMLDocument (какой там аналог в .NET?), а к Sub ContexShow добавить Handles document.oncontextmenu. При загрузке документа присваивать WebBrowser1.document этой переменной.
Лучший способ понять что-то самому — объяснить это другому.

Andrew_T
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.01.2010 (Пн) 16:04

Re: Как сзвязать контекстное меню ....

Сообщение Andrew_T » 11.01.2010 (Пн) 17:28

Что так, или я просто не так вас понял по моему разницы не какой нет между пред идущим кодом и этим. И ещё какое свойство в параметре e.FromElement.... процедуры ContexShow нужно обрабатывать чтобы получить этот нещястный :) элимент от которого вызывается контекстное меню?

WithEvents htmlDoc As HtmlDocument
Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
htmlDoc = WebBrowser1.Document
End Sub
Sub ContexShow(ByVal sender As Object, ByVal e As HtmlElementEventArgs) Handles htmlDoc.ContextMenuShowing
e.
End Sub

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Как сзвязать контекстное меню ....

Сообщение Antonariy » 12.01.2010 (Вт) 10:51

Ну попробуйте посмотреть document.parentWindow.event.srcElement.
Лучший способ понять что-то самому — объяснить это другому.

Andrew_T
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.01.2010 (Пн) 16:04

Re: Как сзвязать контекстное меню ....

Сообщение Andrew_T » 12.01.2010 (Вт) 15:08

Ура нашол :cheers: надо было делать так.

Sub ContexShow(ByVal sender As Object, ByVal e As HtmlElementEventArgs) Handles htmlDoc.ContextMenuShowing
Dim htmlEliment As HtmlElement = htmlDoc.ActiveElement
End Sub
Спасибо за помощь.
Последний раз редактировалось Andrew_T 24.01.2010 (Вс) 16:00, всего редактировалось 1 раз.

Andrew_T
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 11.01.2010 (Пн) 16:04

Re: Как сзвязать контекстное меню ....

Сообщение Andrew_T » 12.01.2010 (Вт) 16:23

Блин теперь новая проблема Htmleliment я получил но как узнать его тип вот например если использовать вот такой код:
Код: Выделить всё
Dim htmlEliment As HtmlElement = htmlDoc.ActiveElement
        Select Case htmlEliment.TagName
            Case "A"
                MsgBox("Ссылка")
            Case "BODY"
                MsgBox("Страница")
            Case "INPUT"
                MsgBox("Поле ввода")
        End Select

то при щелчке на изображении появляется MsgBox("Страница") так же как и при щелчке на пустом месте веб-страницы, как определить что под указателем находится именно изображение?


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27

    TopList  
cron