我的动态ToolStripMenu脚本有什么问题?

本文关键字:什么 问题 脚本 动态 ToolStripMenu 我的 | 更新日期: 2023-09-27 17:52:55

为什么要重复代码?我在xml数据中读得暴跳如雷!并安装工具栏菜单!但是由于某些原因,经常把XML中的修改项放在里面!为什么?下面是代码:

try
{            
    XmlDocument xml = new XmlDocument();
    xml.Load("allomasok.xml");
    XmlNodeList xnList = xml.SelectNodes("/radiok/allomas");
    mennyi =int.Parse(xnList.Count.ToString());
    foreach (XmlNode xn in xnList)
    {
        string radioNEV = xn["neve"].InnerText;
        string radioURL = xn["url"].InnerText;
        //int i = mennyi;
       ToolStripMenuItem[] items = new ToolStripMenuItem[mennyi];
       for (int i = 0; i < items.Length; i++)
        {
            items[i] = new ToolStripMenuItem();
            items[i].Name = "mentett" + i.ToString();
            items[i].Tag = radioURL;
            items[i].Text = radioNEV;
            items[i].Click += new EventHandler(MenuItemClickHandler);
        }
        sajátokToolStripMenuItem.DropDownItems.AddRange(items);
    }            
}
catch
{
    MessageBox.Show("Hiba", "NetRadioPlayer");
}
finally
{
    MessageBox.Show("Ennyi mentett állomás van: " + mennyi);
}

谢谢。

我的动态ToolStripMenu脚本有什么问题?

我觉得你的循环太多了。试试这个:

try
{            
    XmlDocument xml = new XmlDocument();
    xml.Load("allomasok.xml");
    XmlNodeList xnList = xml.SelectNodes("/radiok/allomas");
    ToolStripMenuItem mi;
    int i;
    foreach (XmlNode xn in xnList)
    {
       string radioNEV = xn["neve"].InnerText;
       string radioURL = xn["url"].InnerText;
       mi = new ToolStripMenuItem();
       mi.Name = "mentett" + i++.ToString();
       mi.Tag = radioURL;
       mi.Text = radioNEV;
       mi.Click += new EventHandler(MenuItemClickHandler);
       sajátokToolStripMenuItem.DropDownItems.Add(mi);
    }
}
catch
{
   MessageBox.Show("Hiba", "NetRadioPlayer");
}
finally
{
    MessageBox.Show("Ennyi mentett állomás van: " + mennyi);
}

如果没有帮助,我很抱歉,我不明白你的问题。