将本地HTML文件/代码导入WebBrowser

时间:2011-12-06 19:27:04

标签: html vb.net webbrowser-control

我正在尝试将一个本地HTML文件显示在VB.NET程序的WebBrowser中。我正在使用下面的代码,但它似乎不起作用,我无法弄清楚原因:

    'first method
    WebBrowser1.Navigate(@".\index.html");

    'second method
    HTML = "normal"
    WebBrowser1.Document.Body.InnerHtml = HTML

当我去运行它时,第一个方法在Debug控制台中产生错误“”。如果我在@之外尝试,我会得到一个空的白页。但是,如果我更改了地址,所以我知道它的网址已损坏,我收到一条404消息,这使得它看起来像是在查找文件而不是渲染它?

第二种方法与第一种方法相同,只是没有产生错误,就像它找到文本但什么都不做。

在这两个示例中,我尝试了以下HTML和纯文本变体:

<b>bold</b>normal

normal

为什么这个简单的代码不起作用?

5 个答案:

答案 0 :(得分:5)

@是针对C#的;你不需要它用于VB.NET,因为VB.NET有一个不同的(读取:更好:-))转义字符串系统。因此,删除字符串前的@,并删除行后的;,这也是C#。

问题在于,由于您使用的是WebBrowser,因此您需要一个file:///网址。您可以执行以下几项操作,其中最简单的可能是将WebBrowser指向about:blank并直接放入文件,如下所示:

WebBrowser1.Document.Write(IO.File.ReadAllText("index.html"))

例如。您还可以获取文件的绝对路径,并使用:

WebBrowser1.Navigate("file:///" & IO.Path.GetFullPath(".\index.html"))

答案 1 :(得分:2)

我完全赞同Minitech给出的答案。我正在制作一个HTML代码测试人员并编写了这段代码,但它确实有效。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim sb As New System.Text.StringBuilder
    sb.AppendLine(RichTextBox1.Text)
    IO.File.WriteAllText("htmltester.html", sb.ToString())
    WebBrowser1.Navigate("file:///" & IO.Path.GetFullPath(".\htmltester.html"))
End Sub
End Class

此代码适用于我的程序,我想告诉您,请删除那些&#39; @&#39;和&#39 ;;&#39;。

答案 2 :(得分:0)

Another option I found that works, don't have to create a file.

WebBrowser1.DocumentText = strHTML WebBrowser1.Update()

答案 3 :(得分:0)

进行打开文件对话框,并将文件名引用到将显示路径的文本框或变量中。

$this->app->bind('Illuminate\Support\Facades\Storage::class', function ($app) {
   return new MyNamespace\Storage());
});

然后使用OpenFileDialog1.ShowDialog() TextBox1.Text = OpenFileDialog1.FileName WebBrowser1.Navigate(TextBox1.Text) 导航到变量或文本框路径..

答案 4 :(得分:0)

简单易用:

System.diagnostics.Process.start(Path)

,然后将路径替换为您的路径。