Подскажите пожалуйста как обработать событие только 1 раз? Обрабатывается один раз потому-что при клике на элемент вылазиет еще модальное окно и.т.д. И выдает несколько раз element. В WebBrowser грузится страничка Яндекс Картинки. При клике на какую нибудь картинку я должен получать ссылку для дальнейшей ее обработки. Но получаю две ссылки с одного клика одинаковых соответственно.
Код:
namespace av_export
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted);
string urlo = "https://yandex.ru/images/search?family=yes&text=красивые+обои";
webBrowser1.Navigate(urlo);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.Document.Click += webBrowser1_Browser_Mouse_Moved;
}
private void webBrowser1_Browser_Mouse_Moved(object sender, HtmlElementEventArgs e)
{
webBrowser1.Navigating += webBrowser1_Navigating;
string element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition).GetAttribute("href");
Debug.WriteLine(element);
webBrowser1.Navigating += webBrowser1_Navigating;
}
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
e.Cancel = true;
}
}
}
Результат:
https://yandex.ru/images/search?text=Suprotec%204660007120727&img_url=https%3A%2F%2Fstatic.1k.by%2Fimages%2Fproducts%2Fip%2Fbig%2Fpp9%2F5%2F1355337%2Fia33dd4833.jpg&pos=0&rpt=simage&family=yes
https://yandex.ru/images/search?text=Suprotec%204660007120727&img_url=https%3A%2F%2Fstatic.1k.by%2Fimages%2Fproducts%2Fip%2Fbig%2Fpp9%2F5%2F1355337%2Fia33dd4833.jpg&pos=0&rpt=simage&family=yes
Спасибо заранее!
добавил отписку от события
public partial class MainForm : Form
{
WebBrowser webBrowser1;
public MainForm()
{
this.Width = 500;
this.Height = 500;
webBrowser1 = new WebBrowser() {Width = 500, Height = 500};
this.Controls.Add(webBrowser1);
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
string urlo = "https://yandex.ru/images/search?family=yes&text=красивые+обои";
webBrowser1.Navigate(urlo);
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
webBrowser1.DocumentCompleted -= webBrowser1_DocumentCompleted; // отписка
webBrowser1.Document.Click += webBrowser1_Browser_Mouse_Moved;
}
private void webBrowser1_Browser_Mouse_Moved(object sender, HtmlElementEventArgs e)
{
webBrowser1.Document.Click -= webBrowser1_Browser_Mouse_Moved; // отписка
webBrowser1.Navigating += webBrowser1_Navigating;
string element = webBrowser1.Document.GetElementFromPoint(e.ClientMousePosition).GetAttribute("href");
Debug.WriteLine(element);
//webBrowser1.Navigating += webBrowser1_Navigating;
}
private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
webBrowser1.Navigating -= webBrowser1_Navigating; // отписка
e.Cancel = true;
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости