C# 管理多个工作簿的任务窗格

打印 上一主题 下一主题

主题 1869|帖子 1869|积分 5611

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
CustomTaskPanes.Add方法,它自动把任务窗格添加到当前的工作簿上去了。怎样才能将工作簿对象和任务窗格关联起来?
方法是:
ThisAddIn.cs中创建一个字典管理任务窗格
private Dictionary _createdPanes = new Dictionary();
  1.     /// <summary>
  2.     /// 按名称获取任务窗格(如果当前excel窗口存在,则返回现有实例,否则使用taskPaneCreatorFunc创建一个)。
  3.     /// </summary>
  4.     /// <param name="taskPaneId">一个唯一字符串来标识任务窗格</param>
  5.     /// <param name="taskPaneTitle">任务窗格的标题</param>
  6.     /// <param name="taskPaneWidth">任务窗格的宽度</param>
  7.     /// <param name="taskPaneDockPosition">任务窗格的停靠位置</param>
  8.     /// <param name="taskPaneCreatorFunc">构造任务窗格的函数。</param>
  9.     public CustomTaskPane GetTaskPane(
  10.                string taskPaneId,
  11.                string taskPaneTitle,
  12.                int taskPaneWidth,
  13.                Office.MsoCTPDockPosition taskPaneDockPosition,
  14.                Func<UserControl> taskPaneCreatorFunc
  15.            )
  16.     {
  17.         //string key = string.Format("{0}({1})", taskPaneId, Globals.ThisAddIn.Application.Hwnd);
  18.         string key = $"{taskPaneId}({Globals.ThisAddIn.Application.Hwnd})";
  19.         if (!_createdPanes.ContainsKey(key))
  20.         {
  21.             // 忽略第三个参数,默认在当前窗口新建一个任务窗格
  22.             var taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(taskPaneCreatorFunc(), taskPaneTitle);
  23.             taskPane.Width = taskPaneWidth;
  24.             taskPane.DockPosition = taskPaneDockPosition;
  25.             _createdPanes[key] = taskPane;
  26.         }
  27.         return _createdPanes[key];
  28.     }
复制代码
在Ribbon1.cs中设置一个按钮 调用 并显示或隐藏
private void button1_Click(object sender, RibbonControlEventArgs e)
{
//Globals.ThisAddIn.myPane.Visible = ! Globals.ThisAddIn.myPane.Visible;
{
//调用自定义任务窗格方法来获取或创建任务窗格
var taskpane = Globals.ThisAddIn.GetTaskPane(
"A",
"设置",
200,
Office.MsoCTPDockPosition.msoCTPDockPositionLeft,
() => new UserControl1()
);
taskpane.Visible = !taskpane.Visible;
}
  1.     }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

刘俊凯

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表