2014-11-25 4 views
0
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    webBrowser1.Document.Body.MouseDown += Body_MouseDown; 
} 

void Body_MouseDown(object sender, HtmlElementEventArgs e) 
{ 
    switch (e.MouseButtonsPressed) 
    { 
     case MouseButtons.Left: 
      HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition); 
      if (element != null && "img".Equals(element.GetAttribute("type"), StringComparison.OrdinalIgnoreCase)) 
      { 
       MessageBox.Show("Image Was Clicked"); 
      } 
      break; 
    } 
} 

Это код, который я использую, но он не работает. Что я делаю не так? Правильно ли это?Image click in C# WinForms Browser Control

Любой & Все оценки оценены.

+0

Хорошо, что '' похоже, не работает.' означает .. вы шагнули через код с помощью отладчика ..? можете ли вы указать, каков ваш ожидаемый результат. ?? – MethodMan

+0

@DJKRAZE Что я хочу, когда я нажимаю на изображение в веб-браузере, он должен показывать сообщение «Изображение было нажато». Однако, когда я нажимаю на изображение, ничего не происходит. –

+0

Ваш код вводит оператор 'if'? Вам нужно пройти код. – swiftcode

ответ

0

Не все изображения в html имеют атрибут type. Таким образом, вы должны определить, что ваше кликабельное изображение имеет. Например, я отредактированный код:

Инициализация WebBrowser (вы можете поместить его в конструкторе WinForm):

webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); 
      webBrowser1.Navigate("http://www.google.com"); 

Ваша процедура Body_MouseDown:

void Body_MouseDown(object sender, HtmlElementEventArgs e) 
      { 
       switch (e.MouseButtonsPressed) 
     { 

      case MouseButtons.Left: 
       HtmlElement element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition); 
       if (element != null) 
       { 
        string s = element.Style; 

        if ((s != null) && (s.IndexOf(".png") != -1)) MessageBox.Show("Image Was Clicked"); 
       } 
       break; 
     }  
      } 

Если нажать на логотипе google вы получите окно сообщения, которое вы хотите. Дело в том, что я использую атрибут Style HtmlElement и ищет подстроку «.png» в нем. Вы можете искать все форматы, которые вы хотите: jpg, gif, bmp или все вместе. Удачи.