2016-06-14 151 views
0

我正在尝试读取一个xml文件并为每个“Mods”条目添加一个控件。Xml节点foreach循环

<Modlist> 
    <Mods> 
    <Mod>Test1</Mod> 
    <Version>1.0</Version> 
    </Mods> 
    <Mods> 
    <Mod>Test2</Mod> 
    <Version>2.0</Version> 
    </Mods> 
    <Mods> 
    <Mod>Test3</Mod> 
    <Version>3.0</Version> 
    </Mods> 
</Modlist> 

基本上我想为控制面板中的每一个列出的mod在xml中添加一个控件。

XDocument Mods = XDocument.Load(@"C:\dataset.xml"); 

foreach (var mod in Mods.Descendants("Mods")) 
{ 
    Button modbutton = new Button(); 

    modbutton.Text = mod.Element("Mod").Value; 

    panel1.Controls.Add(modbutton); 
} 

它的工作,但它的唯一创建一个按钮,似乎停止。 在我的例子中,它应该创建3个按钮。 我必须改变什么?我的代码有什么问题?

回答

1

您的代码读取xml是正确的,但您要将每个按钮放在另一个上。每Button设置.Location财产。

+0

这是,如果你不采取任何休息,上帝,我恨我自己会发生什么..:d谢谢你,这就是OFC问题。 – Backslash

1

你的代码工作完美,但问题是按钮被放置在同一个地方。你需要改变立场。

试试这个

 XDocument Mods = XDocument.Load(@"C:\dataset.xml"); 

      int I = 10; 
      foreach (var mod in Mods.Descendants("Mods")) 
      { 
       Button modbutton = new Button() { Top = 10 + I, Left = 10 }; 


       modbutton.Text = mod.Element("Mod").Value; 

       panel1.Controls.Add(modbutton); 

       I += 50; 
      }