c# – RibbonDropDown丢失项目

c# – RibbonDropDown丢失项目,第1张

概述我将项目添加到运行时由新电子邮件检查器使用的RibbonDropDown.我在启动时添加项目,并根据需要刷新列表(当用户按下按钮时) public void RefreshListNames(){ Logger.Log("Refresh Mail Lists"); Globals.Ribbons.Ribbon1.rddListNames.Items.Clear(); f 我将项目添加到运行时由新电子邮件检查器使用的RibbonDropDown.我在启动时添加项目,并根据需要@R_985_6419@(当用户按下按钮时)

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方法中调用,并在启动时进行核心填充.但是,任何新的邮件窗口都会以空白下拉列表结束 – 没有项目.即使@R_985_6419@也不会再次添加项目.

我添加了一些日志记录:它显示按下’刷新按钮’时该方法正在运行:

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

为什么下拉不断丢失物品?为什么他们不回来,即使我明确刷新它们?

@H_502_26@解决方法 如果对功能区UI进行控制修改,则需要通过 IRibbonControl.Invalidate()IRibbonControl.InvalidateControl使控制缓存无效.这将触发Ribbon元素的重绘.

Globals.Ribbons.Ribbon1.InvalIDate();// or...Globals.Ribbons.Ribbon1.InvalIDateControl("ddMarketingList");
总结

以上是内存溢出为你收集整理的c# – RibbonDropDown丢失项目全部内容,希望文章能够帮你解决c# – RibbonDropDown丢失项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229845.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存