Мое приложение блокируется (статическое) при попытке прокрутки в браузере.
Я пытаюсь сделать медленную прокрутку, которая запускает всю страницу.
Основная проблема связана с темами, но я не знаю, как ее решить.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Thread h1;
int cont = 0;
string[] arrayUrls = new[] { "https://www.bbc.com/", "https://php.net/", "https://www.nytimes.com/" };
private void button_start_Click(object sender, EventArgs e)
{
h1 = new Thread(new ThreadStart(startApplication));
h1.Start();
}
private void startApplication() {
if (cont < arrayUrls.Count())
{
ThreadController.InvokeIfRequired(webBrowser1, () =>
{
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate(arrayUrls[cont]);
});
}
else {
MessageBox.Show("end of the program");
}
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
var br = sender as WebBrowser;
if (br.Url == e.Url)
{
cont++;
ThreadController.InvokeIfRequired(webBrowser1, () =>
{
int hightWeb = webBrowser1.Document.Window.Size.Height;
for (int i = 0; i < hightWeb; i = i + 100)
{
webBrowser1.Document.Window.ScrollTo(0, i);
//Sleep 50 miliseconds
Thread.Sleep(50);
}
});
startApplication();
}
}
}
static class ThreadController
{
public static void InvokeIfRequired(this Control control, MethodInvoker action)
{
if (control.InvokeRequired)
{
control.Invoke(action);
}
else
{
action();
}
}
}
Я хочу имитировать движение человека с помощью свитка, чтобы показать, что приложение работает.