DevExpress XtraTabControl问题

时间:2013-02-13 10:05:28

标签: foreach devexpress tabcontrol

我正在使用带有3个XtraTabPages的DevExpress XtraTabControl。 我试图根据条件删除Tabpage,并在删除最后一次迭代后,它收到错误。

我的代码是

foreach (DevExpress.XtraTab.XtraTabPage ptp in tabContactsDetails.TabPages)
            {
                if (tabContactsDetails.TabPages.Contains(ptp))
                {
                    if (ptp.Name == "tabPTP")
                    {
                        if (maxid == String.Empty || maxid == null || maxid == "lblHiddenDebtorID")
                        {
                            tabContactsDetails.TabPages.Remove(ptp);                                
                        }
                        else
                        {

                        }
                    }
                }
            }

我收到的错误如

Collection was modified; enumeration operation may not execute.

1 个答案:

答案 0 :(得分:1)

在迭代过程中无法更改集合!

我所做的是以下内容:

List<XtraTabPage> tabPagesToBeRemoved = new List<XtraTabPage>();

foreach (XtraTabPage ptp in tabContactsDetails.TabPages)
{
    if (shouldBeRemoved())
    {
        tabPagesToBeRemoved.Add(ptp);
    }
}

foreach (XtraTabPage pageToBeRemoved in tabPagesToBeRemoved)
{
    tabContactsDetails.TabPages.Remove(pageToBeRemoved);
}