2011-04-22 43 views
0

爲什麼複製代碼? 我閱讀了XML數據中的橫衝直撞!並安裝toolstripmenu!但由於某種原因每隔一段時間放入xml amennyi項目中!爲什麼? 這裏是代碼:我的動態ToolStripMenu腳本有什麼問題?

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

感謝。

回答

1

我覺得你有太多的循環。試試這個:

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

如果這沒有幫助,我很抱歉,我不明白這個問題。

+0

C#redunderline this code line:mi.Name =「mentett」+ i ++。ToString();這個代碼修改了這個:mi.Name =「mentett」+ mi;這不是wrond,而是..... :-D thx – 2011-04-22 07:52:37

+0

這是一個很好的代碼: – 2011-04-22 08:41:49