0

我在我的应用程序中创建了一个“帮助”功能,它会打开一个对话框,如下所示:

应用截图

左侧的控件是TreeView. 右侧的控件是WebBrowser. WebBrowser填充了 Word 文档,转换为.mhtml(包含图像的 HTML)。

正如您在图像上看到的那样,我正在使用一个表格,链接是可点击的,用户将被定向到文档上的位置。有没有办法在TreeView左侧显示该表?如果可能的话,有人可以给我一个例子来告诉我如何得到想要的结果吗?

编辑:

<h2 style=3D'mso-list:l9 level2 lfo12'><a name=3D"_Toc353271009"><![if !sup=
portLists]><span
style=3D'mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;
mso-bidi-font-family:Calibri;mso-bidi-theme-font:minor-latin'><span
style=3D'mso-list:Ignore'>2.2<span style=3D'font:7.0pt "Times New Roman"'>&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span></span><![endif]>Eerste keer opstarten Liveduiven Client</a><=
/h2>

上面的代码是表中的链接。

使其更清晰的另一个链接:

style='mso-no-proof:yes'><o:p></o:p></span></p>
 <p class=MsoToc1 style='tab-stops:22.0pt right dotted 481.45pt'><span
 class=MsoHyperlink><span style='mso-no-proof:yes'><a href="#_Toc353271007">2<span
 style='color:windowtext;text-decoration:none;text-underline:none'><span
 style='mso-tab-count:1'>       </span></span>DE LIVEDUIVEN CLIENT<span
 style='color:windowtext;display:none;mso-hide:screen;text-decoration:none;
 text-underline:none'><span style='mso-tab-count:1 dotted'>. </span></span>
4

1 回答 1

1

我不知道你的 html 内容的结构,但我写了一个例子(你怎么能这样做):

导航到您的网址

  private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://en.wikipedia.org/wiki/Microsoft");
        }

获取页面主题的元素

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //Get header of subject
            foreach (HtmlElement elementintable in webBrowser1.Document.GetElementById("toc").All)
            {
                if (elementintable.TagName == "A")
                {
                    //insert key and string to each node
                    treeView1.Nodes.Add(elementintable.GetAttribute("href").Split('#')[1], elementintable.InnerText);
                }
            }
        }

获取选定的节点密钥

        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            //navigate to selected anchor
            webBrowser1.Document.GetElementById(e.Node.Name).ScrollIntoView(true);
        }

结果

在此处输入图像描述

完整代码

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //Navibate To your url
        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate("http://en.wikipedia.org/wiki/Microsoft");
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            //Get header of subject
            foreach (HtmlElement elementintable in webBrowser1.Document.GetElementById("toc").All)
            {
                if (elementintable.TagName == "A")
                {
                    //insert key and string to each node
                    treeView1.Nodes.Add(elementintable.GetAttribute("href").Split('#')[1], elementintable.InnerText);
                }
            }
        }

        private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
            //navigate to selected anchor
            webBrowser1.Document.GetElementById(e.Node.Name).ScrollIntoView(true);
        }
    }
于 2013-04-09T15:52:36.137 回答