C# winform
Dictionary<string, RibbonControl> ribbonControls = new Dictionary<string, RibbonControl>();
private void tabMain_SelectedPageChanged(object sender, TabPageChangedEventArgs e)
{
RibbonControl rc = null;
string preName = (e.PrevPage == null) ? "" : e.PrevPage.Name;
if (!string.IsNullOrEmpty(preName))
{
string preKey = preName.Substring(8);//分割
if (ribbonControls.ContainsKey(preKey))//ContainsKey用来判断map集合
rc = ribbonControls[preKey];
}
ClearMainRibbonGroup(rc);//从MainRibbonControl头部中移出
string currentPageName = (e.Page == null) ? "" : e.Page.Name;
if (string.IsNullOrEmpty(currentPageName))
return;
string key = currentPageName.Substring(8);
bool isActived = false;
if (!ribbonControls.ContainsKey(key))
return;
rc = ribbonControls[key];
int index = 1;
List<RibbonPage> ribbonPages = new List<RibbonPage>();
foreach (RibbonPage page in rc.Pages)
{
ribbonPages.Add(page);
}
foreach (RibbonPage page in ribbonPages)
{
rbControlMain.Pages.Insert(index, page); // rc.Pages 每次迭代后,该集合会自动删除,这是什么原因?请各位发表自己的见解
if (!isActived)
{
rbControlMain.SelectedPage = page;
isActived = true;
}
index++;
}
}