Я пытаюсь запустить функцию один раз в событии DocumentCompleted, я знаю, что она будет запускаться столько раз, сколько браузер загружает в окнах iframe / внешних ссылках, я не могу придумать, как это сделать.
То, что я пробовал:
Код:
private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
bool hasFiredOnce = false;
if ((sender as WebBrowser).ReadyState == WebBrowserReadyState.Complete)
{
try
{
// 1) - Find out what url we are viewing and update accordingly ...
WebBrowser browser = (WebBrowser)sender;
var current_url = browser.Url.AbsoluteUri;
txtBoxUrl.Text = current_url;
// Check for any saved answers ...
if (hasFiredOnce == false)
{
if (Helpers.CheckForSavedAnswers(txtBoxUrl.Text) != "NONE")
{
hasFiredOnce = true;
linkLabelAnswerText.Text = "Stored answer found!";
Helpers.ReturnMessage(Helpers.CheckForSavedAnswers(txtBoxUrl.Text));
}
else
{
linkLabelAnswerText.Text = "...";
hasFiredOnce = false;
}
Helpers.ReturnMessage("This should fire once!");
}
}
catch (Exception ex)
{
Helpers.DebugLogging("[" + DateTime.Now + "]-[" + ex.ToString() + "]");
}
}
}
Это установка bool, если это false
, мы запускаем функцию Helpers.CheckForSavedAnswers(txtBoxUrl.Text)
, затем установите его на true
, чтобы он больше не запускался, но он работает, я думаю, что мне не хватает чего-то явно небольшого здесь, любая помощь будет оценена.