2017-10-11 28 views
0

我从工具箱中用vb.Net的webBrowser制作了一个web浏览器。当我点击一个应该用作导航器的按钮时(例如,当我点击按钮A时,Web浏览器应该导航到a.html,但是当我点击b时,浏览器应该导航到b.html)。事情是,它不起作用。每当我点击1个按钮,并尝试点击其他按钮,Web浏览器将无法导航。当另一个html页面被加载时,我的vb.net webbrowser无法导航到其他html文件

下面的代码:

Private Sub aToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles aToolStripMenuItem.Click 
    browser.Visible = True 
    browser.Navigate(New Uri("a.html")) 
End Sub 

Private Sub bToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles bToolStripMenuItem.Click 
    If browser.Visible = True Then 
     browser.Navigate(New Uri("\b.html")) 
    ElseIf browser.Visible = False Then 
     browser.Visible = True 
     browser.Navigate(New Uri("\b.html")) 
    End If 
End Sub 

请纠正我,如果我有代码中的任何问题。 Fyi,我在项目中使用了菜单条,所以菜单条的选择应该像按钮一样工作。

+0

[如何创建一个最小,完整和可验证的示例](http://stackoverflow.com/help/mcve) –

+0

\是否意味着成为b.html uri的一部分? a.html没有这个,它工作正常 – Jaxi

回答

0

我认为你的URI格式不正确。我理解你的意思是两个按钮都不起作用。让我知道如果这是不正确的。如果您正在读取当前目录中的文件,则从here开始:

  1. 将这些文件添加到您的Visual Studio项目中。
  2. 对Visual Studio中的html文件执行右键单击属性。
  3. 将复制到输出目录设置为始终复制。

然后,导航这样的:

Dim curDir As String = System.IO.Directory.GetCurrentDirectory 
    browser.Navigate(New Uri(String.Format("file:///{0}/a.html", curDir))) 

在该代码中,{0}是一个参数,并且将通过在构造函数中curDir变量的值,这将提供给所述路径来代替文件。 file:///是协议,类似于http://。如果您在网页浏览器中打开常规文件(例如Chrome(右键单击,打开),那么您也会看到此协议。

+0

谢谢!我真的需要这个代码。顺便说一句,“file:/// {0} /”是什么意思? –

+0

没问题。我编辑了答案以提供解释。谢谢! – PerpetualStudent

相关问题