Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在System.Windows.Forms.WebBrowser控件中打开本地文件_Html_Vb.net_Winforms_Url - Fatal编程技术网

Html 在System.Windows.Forms.WebBrowser控件中打开本地文件

Html 在System.Windows.Forms.WebBrowser控件中打开本地文件,html,vb.net,winforms,url,Html,Vb.net,Winforms,Url,我正在Windows窗体WebBrowser控件中呈现以下简单HTML: <HTML> <HEAD></HEAD> <BODY bottommargin='0' leftmargin='10' rightmargin='0' topmargin='10'> <span>Programs</span><br /><br /> <a href='file:///C:\Temp\pro

我正在Windows窗体WebBrowser控件中呈现以下简单HTML:

<HTML>
<HEAD></HEAD>
<BODY bottommargin='0' leftmargin='10' rightmargin='0' topmargin='10'>
    <span>Programs</span><br /><br />
    <a href='file:///C:\Temp\prog1.cnc'>Program 1</a><br />
    <a href='file:///C:\Temp\prog2.cnc'>Program 2</a><br />
    <a href='file:///C:\Temp\prog3.cnc'>Program 3</a><br /> 
</BODY>
</HTML>
或者不带
文件
前缀:

<a href='\\servername\Temp\prog1.cnc'>Program 1</a>
处理导航事件的代码:
Private Sub-WebViewer\u导航(ByVal sender作为对象,ByVal e作为System.Windows.Forms.WebBrowserNavigatingEventArgs)处理WebViewer.Navigating
Dim filepath作为String=e.Url.OriginalString
如果File.Exists(filepath)存在,则
Dim progInfo作为新文件信息(文件路径)
如果progInfo.Extension.ToLower=“.cnc”,则
WebViewer.ScrollBarsEnabled=True
WebViewer.DocumentText=File.ReadAllText(e.Url.OriginalString).Replace(Chr(13),“
”) 如果结束 e、 取消=真 如果结束 端接头
我已经找到了一份暂时可以让我继续工作的工作,但如果有人对所描述的行为有解释,我仍然很感兴趣

通过伪造远程文件路径,我可以像对实际远程文件那样触发
导航
事件,然后在
导航
事件中,我重新写入路径以重新引用本地文件,如下所示:

设置文档文本 更改:

programHtml.AppendLine(String.Format("<a href='file://{0}'>{1}</a><br />", progInfo.FullName, progInfo.Name.ToUpper))
Private Shared Function LoadProgramHtml(ByVal programFiles() As String) As String

    Dim programHtml As New StringBuilder

    If ProgramFiles.Length > 0 Then

        programHtml.AppendLine("<HTML>")
        programHtml.AppendLine("<HEAD></HEAD>")
        programHtml.AppendLine("<BODY bottommargin='0' leftmargin='10' rightmargin='0' topmargin='10'>")
        programHtml.AppendLine("<span>Programs</span><br /><br />")

        For Each program As String In ProgramFiles

            Dim progInfo As New FileInfo(program)

            programHtml.AppendLine(String.Format("<a href='file://{0}'>{1}</a><br />", progInfo.FullName, progInfo.Name.ToUpper))
        Next

        programHtml.AppendLine("</BODY>")
        programHtml.AppendLine("</HTML>")

    End If

    WebViewer.DocumentText = programHtml.ToString()

End Function
Private Sub WebViewer_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebViewer.Navigating

    Dim filepath As String = e.Url.OriginalString

    If File.Exists(filepath) Then

        Dim progInfo As New FileInfo(filepath)

        If progInfo.Extension.ToLower = ".cnc" Then

            WebViewer.ScrollBarsEnabled = True
            WebViewer.DocumentText = File.ReadAllText(e.Url.OriginalString).Replace(Chr(13), "<br />")

        End If

        e.Cancel = True

    End If

End Sub
programHtml.AppendLine(String.Format("<a href='file://{0}'>{1}</a><br />", progInfo.FullName, progInfo.Name.ToUpper))
programHtml.AppendLine(String.Format("<a href='{0}' target='_top'>{1}</a><br />", progInfo.FullName.ToLower.Replace("c:", "\\faked"), progInfo.Name.ToUpper))
'note the `\\faked`
Dim filepath As String = e.Url.OriginalString.Replace("\\faked", "c:")

    If File.Exists(filepath) Then
    ....