1

I am new here and really want your help. I've been trying to disable my webbrowser's cache but I get overload resolution failed because no accessible "Navigate" without a narrowing conversion. I'm stuck and I don't know what to do anymore, I did search all the possible solutions but found no answer. Here's my code:

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        Const navNoReadFromCache As Long = 4
        Const navNoHistory As Long = 2
        Const navNoWriteToCache As Long = 8
        Dim navflags As Long
        navflags = navNoHistory + navNoWriteToCache
        WebBrowser1.Navigate("url", 4)
    End Sub
End Class

Original Error message is:

Error 2 Overload resolution failed because no accessible 'Navigate' can be called without a narrowing conversion:

'Public Sub Navigate(urlString As String, newWindow As Boolean)': Argument matching parameter 'newWindow' narrows from 'Integer' to 'Boolean'.

'Public Sub Navigate(urlString As String, targetFrameName As String)': Argument matching parameter 'targetFrameName' narrows from 'Integer' to 'String'.
4

2 回答 2

1

.NET WebBrowserControl 没有接受 int 或 long 参数的重载。因此,您不能将BrowserNavConstants(对于 IWebBrowser2 而不是 .NET WebBrowserControl)值设置为 .NET WebBrowserControl。


我找到了以下页面:

http://msdn.microsoft.com/en-us/library/40x214wa%28v=vs.110%29.aspx

WebBrowser 控件将来自最近访问的站点的网页存储在本地硬盘上的缓存中。每个页面都可以指定一个过期日期,指示它将在缓存中保留多长时间。当控件导航到页面时,它通过显示缓存版本(如果可用)而不是再次下载页面来节省时间。

使用 Refresh 方法强制 WebBrowser 控件通过下载来重新加载当前页面,确保控件显示最新版本。


更新。我尝试以下代码,看起来工作正常:

    private void button1_Click(object sender, EventArgs e) {
        webBrowser1.Navigate("http://www.google.co.jp");
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) {
        webBrowser1.Refresh(WebBrowserRefreshOption.Completely);
    }

这会加载页面两次。

于 2014-06-22T00:58:41.670 回答
0

因此,经过一段时间的搜索和测试不同的方法,我得到了一个很好的结果。

Shell("RunDll32.exe InetCpl.cpl, ClearMyTracksByProcess 8", vbHide)

这是我用来删除将我的网络浏览器保持在黑屏上的缓存的代码。它所做的是搜索 Internet Explorer 的临时文件并删除它们,vbHide 必须保持在逗号旁边才能工作,所做的是隐藏弹出我们告诉您它删除临时文件的窗口。

于 2014-06-22T10:27:21.970 回答