c# – 包含多个打开的工作簿的自定义任务窗格

c# – 包含多个打开的工作簿的自定义任务窗格,第1张

概述我已成功实现了Microsoft示例“演练:使用功能区按钮同步自定义任务窗格”,如下所示: http://msdn.microsoft.com/en-us/library/bb608590.aspx 最初我遇到了一个问题,任务窗格没有显示,结果是我的加载项和微软的“分析工具包”之间发生了一些冲突.禁用Analysis Toolpack后,自定义任务窗格开始按预期显示和隐藏. 然后,当用户按下按钮时 我已成功实现了Microsoft示例“演练:使用功能区按钮同步自定义任务窗格”,如下所示:
http://msdn.microsoft.com/en-us/library/bb608590.aspx

最初我遇到了一个问题,任务窗格没有显示,结果是我的加载项和微软的“分析工具包”之间发生了一些冲突.禁用Analysis Toolpack后,自定义任务窗格开始按预期显示和隐藏.

然后,当用户按下按钮时,我编写了一些代码来更改所选范围内的单元格.这似乎工作得很好 – 直到我打开另一本工作簿!每个工作簿窗口都有自己的加载项功能区,但是当我单击切换按钮打开/关闭自定义任务窗格时,它只会打开/关闭创建的第一个窗口的自定义任务窗格.这与我单击切换按钮的窗口无关.

该代码在ThisAddIn_Startup中实例化CustomTaskPane对象(就像在示例代码中一样).我唯一添加的是UserControl中的按钮 *** 作:

using xl = Microsoft.Office.Interop.Excel;namespace SynchronizeTaskPaneAndRibbon{    public partial class TaskPaneControl : UserControl    {        public TaskPaneControl()        {            InitializeComponent();        }        private voID actionbutton1_Click(object sender,EventArgs e)        {            xl.Range selection_rng = Globals.ThisAddIn.Application.Selection;            foreach (xl.Range cell in selection_rng.Cells)            {                if (cell.Value is string)                {                    string v = cell.Value;                    cell.Value = v + "*";                }            }        }    }}

代码的其余部分就像在示例中一样.

有没有办法更改示例,以便它可以用于打开多个工作簿?我想要的是相同的加载项出现在每个工作簿窗口中,具有相同的功能区和相同的自定义窗格.当然,要将任何功能区 *** 作(例如按下按钮)路由到出现在同一窗口中的自定义任务窗格.

解决方法 是的,在MSDN上还有另一个例子,它讨论了在多个文档中管理自定义任务窗格.请注意,这是从Word / InfoPath的角度来看,但Excel的基本思想也是一样的.

一般来说,如果当前工作簿没有,则需要为当前工作簿添加新的任务窗格.因此,将添加自定义任务窗口逻辑从Addin启动添加到功能区按钮单击事件.通过按钮单击事件执行此 *** 作,您可以在单击功能区时向新文档添加新任务窗格.

链接:https://msdn.microsoft.com/en-us/library/bb264456(v=office.12).aspx?f=255&MSPPError=-2147217396#Anchor_2

将有用的代码片段放在下面,以防链接在将来失效:

//Add a custom taskpane to active Word documentpublic voID AddCalendarTaskPane(Word.document doc){    ctpCalendar = this.CustomTaskPanes.Add(new CalendarControl(),"Select a date",doc.ActiveWindow);    ctpCalendar.Visible = true;}

我建议通过将Visible标志切换为false而不是YMMV来隐藏任务窗格,而不是删除.希望这可以帮助.

总结

以上是内存溢出为你收集整理的c# – 包含多个打开的工作簿的自定义任务窗格全部内容,希望文章能够帮你解决c# – 包含多个打开的工作簿的自定义任务窗格所遇到的程序开发问题。

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

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

原文地址:https://54852.com/langs/1244501.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存