Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#递归添加页面视图和页面_C#_Function_Recursion_Add - Fatal编程技术网

C#递归添加页面视图和页面

C#递归添加页面视图和页面,c#,function,recursion,add,C#,Function,Recursion,Add,我有一个页面视图,其中有另一个页面视图,依此类推。我试图动态地创建它,并使用递归函数来避免循环地狱。有什么办法可以做到这一点吗 提前谢谢 到目前为止,我掌握的代码是 foreach (RadPageViewPage page in radPageView1.Pages) { RadPageViewPage newPage = new RadPageViewPage(); newPage.Text = page.Tex

我有一个页面视图,其中有另一个页面视图,依此类推。我试图动态地创建它,并使用递归函数来避免循环地狱。有什么办法可以做到这一点吗

提前谢谢

到目前为止,我掌握的代码是

        foreach (RadPageViewPage page in radPageView1.Pages)
        {
            RadPageViewPage newPage = new RadPageViewPage();
            newPage.Text = page.Text;
            newPage.Image = page.Image;
            PageviewAccessMain.Pages.Add(newPage);

            // Check for pageviews on each page
            foreach (Control c in page.Controls)
            {
                if(c is RadPageView)
                {
                    RadPageView oldPageview = (c as RadPageView);
                    RadPageView newPageview = new RadPageView();
                    
                    // Add pages to new pageview
                    foreach(RadPageViewPage oldPage in oldPageview.Pages)
                    {
                        RadPageViewPage newPageviewPage = new RadPageViewPage();
                        newPageviewPage.Text = oldPage.Text;
                        newPageviewPage.Image = oldPage.Image;
                        newPageview.Pages.Add(newPageviewPage);
                    }
                    newPageview.Name = oldPageview.Name;
                    newPage.Dock = DockStyle.Fill;
                    newPage.Controls.Add(newPageview);
                    PageviewCheckboxes(newPageview);
                }
            }
        }
我想让递归的部分是

            foreach (Control c in page.Controls)
            {
                if(c is RadPageView)
                {
                    RadPageView oldPageview = (c as RadPageView);
                    RadPageView newPageview = new RadPageView();
                    
                    // Add pages to new pageview
                    foreach(RadPageViewPage oldPage in oldPageview.Pages)
                    {
                        RadPageViewPage newPageviewPage = new RadPageViewPage();
                        newPageviewPage.Text = oldPage.Text;
                        newPageviewPage.Image = oldPage.Image;
                        newPageview.Pages.Add(newPageviewPage);
                    }
                    newPageview.Name = oldPageview.Name;
                    newPage.Dock = DockStyle.Fill;
                    newPage.Controls.Add(newPageview);
                    PageviewCheckboxes(newPageview);
                }
            }