2016-06-14 172 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; 
      }