C# 如何向窗体上的特定windows窗体控件显示xml文件的内容并允许导航?

C# 如何向窗体上的特定windows窗体控件显示xml文件的内容并允许导航?,c#,xml,windows-forms-designer,C#,Xml,Windows Forms Designer,我有一个加载到XMLDocument对象中的XML文件。XML文件有许多节点。我想在Windows窗体上显示节点的内容,并使用导航控件在节点中导航。我该怎么做 我希望显示信息的表单类似于: 以下是XML文件的示例: <?xml version="1.0" ?> <tours> <tour> <description> <![CDATA[ <p><i>Travel Scotland!<

我有一个加载到XMLDocument对象中的XML文件。XML文件有许多节点。我想在Windows窗体上显示节点的内容,并使用导航控件在节点中导航。我该怎么做

我希望显示信息的表单类似于:

以下是XML文件的示例:

<?xml version="1.0" ?>
<tours>
   <tour>
      <description>
      <![CDATA[
<p><i>Travel Scotland!</i> goes south to England blah blah...</p>
  ]]>
  </description>
  <tour_name>The Lake District</tour_name>
  <tour_photo>Lake.jpg</tour_photo>
  <tour_guide>Mary Taylor</tour_guide>
  <td_email>mailto:mtaylor@tscotland.com</td_email>
  <tour_start>6/15/2003</tour_start>
  <tour_end>6/19/2003</tour_end>
  <itinerary>
     <day>
        <day_number>1</day_number>
        <plan>London arrival</plan>
     </day>
     <day>
        <day_number>2</day_number>
        <plan>Train to Windemere</plan>
     </day>
     <day>
        <day_number>3</day_number>
        <plan>Second day in Windemere</plan>
     </day>
     <day>
        <day_number>4</day_number>
        <plan>Trip to Ambleside</plan>
     </day>
     <day>
        <day_number>5</day_number>
        <plan>Hiking tour to Grasmere</plan>
     </day>
  </itinerary>   
</tour>
<tour> ANOTHER TOUR ETC.

去苏格兰旅行吧!南下到英国去了,诸如此类

]]> 湖区 Lake.jpg 玛莉·泰勒 邮寄地址:mtaylor@tscotland.com 6/15/2003 6/19/2003 1. 抵达伦敦 2. 开往温德默的火车 3. 温德默尔的第二天 4. 安布尔赛德之旅 5. 格拉斯米尔徒步旅行 另一次旅行等。
我不知道XMLDocument对象的细节,但用伪代码术语来说,您需要这样做:

遍历
节点,并将信息加载到自定义结构的数组中。e、 g

    struct tour{
        String description;
        String tourname;
        String tourimagelink;
        ...
    }
然后,您需要遍历数组的每个元素,为每个条目创建Windows窗体控件(最好是在固定面板内,这样您就可以滚动)。对于y轴偏移,需要计算信息块的高度。如果使用for循环迭代元素,下面的公式可能会有所帮助:

    y = (i*blockHeight) + offsetOfControl;
我希望这在某些方面有所帮助


编辑:更好的方法是-不使用结构,您可以使用公开所有Windows窗体控件的类,以便将它们附加到主窗体。

问题是什么,你试过什么?你说你想要什么,但不说你在做的时候遇到了什么问题。那么,在表单上显示和浏览s的最佳方式是什么?我曾尝试创建一个数据集来保存信息,但我不确定这是否是最好的方法。