【发布时间】:2021-06-27 00:14:22
【问题描述】:
我正在编写一个使用 WebBrowser 控件的 C# Winforms 程序。在我的程序中,每当我单击网络浏览器页面中的链接时,我都会使用导航功能,这样我就可以创建一些文本并将其分配给 WebBrowser.DocumentText。这工作正常。但是,该程序也可以执行 WebBrowser.Navigate(url) 函数,该函数创建一个程序循环,因为它通过 OnNavigate 函数不断返回,如下所示:
private void OnNavigate(object sender, WebBrowserNavigatedEventArgs e)
{
string url = e.Url.ToString().Replace("about:", "");
............
}
所以问题是,如果我的程序中有 OnNavigate 事件或函数,并且我还执行了 WebBrowser.Navigate(url) 函数,则在执行 WebBroswer.Navigate 函数时,程序将继续循环通过上面显示的 OnNavigate 函数。如果我从我的程序中删除 OnNavigate 事件,则 WebBrowser.Navigate(url) 函数将不会循环并显示相应的页面。
有谁知道为什么会发生这种情况,或者我可以如何防止 WebBrowser.Navigate 函数循环通过 OnNavigate?
【问题讨论】:
标签: c# visual-studio-code webbrowser-control