c# – RibbonDropDown丢失项目
发布时间:2020-12-15 21:49:49 所属栏目:百科 来源:网络整理
导读:我将项目添加到运行时由新电子邮件检查器使用的RibbonDropDown.我在启动时添加项目,并根据需要刷新列表(当用户按下按钮时) public void RefreshListNames(){ Logger.Log("Refresh Mail Lists"); Globals.Ribbons.Ribbon1.rddListNames.Items.Clear(); foreac
我将项目添加到运行时由新电子邮件检查器使用的RibbonDropDown.我在启动时添加项目,并根据需要刷新列表(当用户按下按钮时)
public void RefreshListNames() { Logger.Log("Refresh Mail Lists"); Globals.Ribbons.Ribbon1.rddListNames.Items.Clear(); foreach (KeyValuePair<Guid,string> kvp in _dda.GetMarketingListNames()) { Microsoft.Office.Tools.Ribbon.RibbonDropDownItem dd = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem(); dd.Tag = kvp.Key; dd.Label = kvp.Value; Logger.Log("Adding " + dd.Label); Globals.Ribbons.Ribbon1.rddListNames.Items.Add(dd); } Globals.Ribbons.Ribbon1.rddListNames.ResumeLayout(); } 注意:rddListNames是RibbonDropDown 此方法在ThisAddIn_Startup方法中调用,并在启动时进行核心填充.但是,任何新的邮件窗口都会以空白下拉列表结束 – 没有项目.即使刷新列表也不会再次添加项目. 我添加了一些日志记录:它显示按下’刷新按钮’时该方法正在运行: 23/04/2013 14:36:43 - Refresh Mail Lists 23/04/2013 14:36:45 - Adding Marketing List - Dynamic 23/04/2013 14:36:45 - Adding Marketing List - Bs 23/04/2013 14:36:45 - Adding Marketing List - As 为什么下拉不断丢失物品?为什么他们不回来,即使我明确刷新它们? 解决方法
如果对功能区UI进行控制修改,则需要通过
IRibbonControl.Invalidate() 或
IRibbonControl.InvalidateControl 使控制缓存无效.这将触发Ribbon元素的重绘.
Globals.Ribbons.Ribbon1.Invalidate(); // or... Globals.Ribbons.Ribbon1.InvalidateControl("ddMarketingList"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |