2013-10-11 4 views
1

У меня есть 3 контекстных меню для моего браузера WinForms.WinForm Browser Control Какой элемент был нажат правой кнопкой мыши?

BrowserImages, BrowserLinks и BrowserDefault.

  1. По умолчанию загружаются при пустой области документа правой щелкнула на
  2. Ссылки отображаются при ссылке правого нажала на
  3. и изображениях отображается, когда - вы угадали - изображение правое нажмите.

Когда 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, достаточно легко переписать.

Благодаря

ответ

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