У меня есть 3 контекстных меню для моего браузера WinForms.WinForm Browser Control Какой элемент был нажат правой кнопкой мыши?
BrowserImages, BrowserLinks и BrowserDefault.
- По умолчанию загружаются при пустой области документа правой щелкнула на
- Ссылки отображаются при ссылке правого нажала на
- и изображениях отображается, когда - вы угадали - изображение правое нажмите.
Когда DocumentCompleted обжигают добавляет Document_ContextMenuShowing события - код для этого есть:
/// <summary>
/// Displays the Correct Context Menu for the element that is being right clicked on
/// </summary>
/// <param name="sender">
/// HTMLDocument: The content of the web browser when the right click was detected.
/// </param>
/// <param name="e">
/// HtmlElementEventArgs: Used for getting the location of the mouse so we know where to display the Context Menu
/// </param>
void Document_ContextMenuShowing(object sender, HtmlElementEventArgs e)
{
var res = (HtmlDocument)sender;
if (res.ActiveElement.InnerHtml.ToLowerInvariant().Contains("img"))
{
cmsBrowserImages.Show(e.ClientMousePosition.X, e.ClientMousePosition.Y);
}
else if (res.ActiveElement.InnerHtml.ToLowerInvariant().Contains("href"))
{
cmsBrowserLinks.Show(e.ClientMousePosition.X, e.ClientMousePosition.Y);
}
else
{
cmsBrowserDefault.Show(e.ClientMousePosition.X, e.ClientMousePosition.Y);
}
}
Есть лучше, более прочный (лучше рабочий) способ сделать это? C# код предпочтительнее, но VB.Net будет beok to, достаточно легко переписать.
Благодаря