DataSet ds1 = new DataSet();
                ds1.ReadXml(Application.StartupPath + "/xml/User1.Xml");
                DataSet ds2 = new DataSet();
                ds2.ReadXml(Application.StartupPath + "/xml/User2.Xml");
                DataSet ds3 = new DataSet();
                ds3.ReadXml(Application.StartupPath + "/xml/User3.Xml");
                DataSet ds4 = new DataSet();
                ds4.ReadXml(Application.StartupPath + "/xml/User4.Xml");
                
                foreach (DataRow row1 in ds1.Tables[0].Rows)
                {
                    if (row1[2].ToString() == "0")//生成第一级别国家
                    {
                        ToolStripMenuItem toolMenuItem = new ToolStripMenuItem();
                        toolMenuItem.Name = "toolMenuItem" + row1[0].ToString();
                        toolMenuItem.Text = row1[1].ToString();
                        this.StripMenuItem_choose.DropDownItems.Add(toolMenuItem);
                        toolMenuItem.Click += new System.EventHandler(this.toolMenuItem_Click);                        if (depth >= 1)//当前的选定项
                        {
                            if (row1[0].ToString() == area[0].ToString())
                            {
                                toolMenuItem.Checked = true;
                            }
                        }                        foreach (DataRow row2 in ds2.Tables[0].Rows)
                        {
                            if (row1[0].ToString() == row2[3].ToString())//生成第二级别省份
                            {
                                //MessageBox.Show(row2[3].ToString());
                                ToolStripMenuItem toolMenuItem2 = new ToolStripMenuItem();
                                toolMenuItem2.Name = "toolMenuItem" + row2[0].ToString();
                                toolMenuItem2.Text = row2[1].ToString();
                                toolMenuItem.DropDownItems.Add(toolMenuItem2);
                                toolMenuItem2.Click += new System.EventHandler(this.toolMenuItem_Click);
                                
                                if (depth >= 2)//当前的选定项
                                {
                                    if (row2[0].ToString() == area[1].ToString())
                                    {
                                        toolMenuItem2.Checked = true;
                                    }
                                }
                                else if (depth==1) 
                                {
                                    toolMenuItem2.Checked = true;
                                }                                
                                foreach (DataRow row3 in ds3.Tables[0].Rows)
                                {                                    if (row2[0].ToString() == row3[3].ToString())//生成第三级别地区
                                    {
                                        //MessageBox.Show(row2[3].ToString());
                                        ToolStripMenuItem toolMenuItem3 = new ToolStripMenuItem();
                                        toolMenuItem3.Name = "toolMenuItem" + row3[0].ToString();
                                        toolMenuItem3.Text = row3[1].ToString();
                                        toolMenuItem2.DropDownItems.Add(toolMenuItem3);
                                        toolMenuItem3.Click += new System.EventHandler(this.toolMenuItem_Click);
                                        
                                        if (depth >= 3)//当前的选定项
                                        {
                                            if (row3[0].ToString() == area[2].ToString())
                                            {
                                                toolMenuItem3.Checked = true;
                                     
     .....略                                           
                                                  
                      我的程序每次启动都要生成这样地区县市的三千多个菜单
本来读去数据库的现在已经用XML缓存了
可是发现更占资源
程序几乎打不开了
怎么样不用让它每次启动都要生成菜单啊