【问题标题】:Xml node foreach loopxml节点foreach循环
【发布时间】:2016-06-14 12:34:58
【问题描述】:

我目前正在尝试读取一个 xml 文件并为每个“Mods”条目添加一个控件。

<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>

基本上我想为 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 个按钮。 我必须改变什么?我的代码有什么问题?

【问题讨论】:

    标签: c# foreach xmlnode


    【解决方案1】:

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

    【讨论】:

    • 如果你不休息就会发生这种情况,上帝我恨我自己.. :D 谢谢,这就是问题所在。
    【解决方案2】:

    您的代码运行良好,但问题是按钮放置在同一个位置。你需要改变位置。

    试试这个

           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;
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-25
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多