2019独角兽企业重金招聘Python工程师标准>>>

原文作者:Norm Estabrook

原文链接:http://blogs.msdn.com/b/vsto/archive/2010/02/02/add-a-custom-task-pane-to-project-2010-norm-estabrook.aspx

  好消息, Project 2010 现在可以支持自定义任务窗格!坏消息,让自定义任务窗格显示在一个 Project 2010中并是不是那么显而易见。总的来说还是一个好消息,因为实现起来比听起来容易的多。

  在这里,我会向大家演示如何利用  Visual Studio 中project 2010 或者Project 2007 的项目模板来给project 2010添加自定义任务窗格 .

 

Microsoft Office Project中任务窗格的简单概述

  在Project 2007中并不支持自定义任务窗格,而现在Project 2010支持它。然而,在Visual Studio 里面Project 2010 的项目模板并没有公开显示自定义任务窗格这一项,这也许会让你有点泄气。因为你知道,有了这一项,就可以通过 代码this.CustomTaskPanes 或者 Me.CustomTaskPanes访问CustomTaskPaneCollection 对象。

  不过不用担心,我们可以自己创建一个CustomTaskPaneCollection对象。具体需要什么样的代码来完成这个则由你的项目绑定的.Net Framework 的版本来决定。

  那么现在,在你的工程中添加一个用户控件User Control。这个控件给你的自定义任务窗格提供了界面设计。接下来,明确你要绑定的.Net Framework的版本。如果你创建的是一个新的Project 2010的项目,那么唯一的选择就是绑定 .NET Framework 4。尽管如此,确认版本一下也没什么大碍。这里有一片很有用的文章,主要就是介绍关于这个内容。How to: Target a Specific .NET Framework Version or Profile.

等你做完了所有上面的步骤,把下面的代码添加到项目中。

对于绑定 .NET Framework 4的项目:

[VB]

Private myUserControl1 As MyUserControl

    Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

    Private myCustomTaskPaneCollection As Microsoft.Office.Tools.CustomTaskPaneCollection

 

    Private Sub ThisAddIn_Startup() Handles Me.Startup

        myUserControl1 = New MyUserControl

        myCustomTaskPaneCollection = Globals.Factory.CreateCustomTaskPaneCollection _

        (Nothing, Nothing, "CustomTaskPanes", "CustomTaskPanes", Me)

        myCustomTaskPane = myCustomTaskPaneCollection.Add(myUserControl1, "My Task Pane")

        myCustomTaskPane.Visible = True

    End Sub

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown

        myCustomTaskPaneCollection.Dispose()

    End Sub

[C#]

    private MyUserControl myUserControl1;

    private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

    private Microsoft.Office.Tools.CustomTaskPaneCollection myCustomTaskPaneCollection;

 

    private void ThisAddIn_Startup(object sender, System.EventArgs e)

    {

        myUserControl1 = new MyUserControl();

        myCustomTaskPaneCollection =

            Globals.Factory.CreateCustomTaskPaneCollection

            (null, null, "CustomTaskPanes", "CustomTaskPanes", this);

 

        myCustomTaskPane = myCustomTaskPaneCollection.Add(myUserControl1, "My Task Pane");

        myCustomTaskPane.Visible = true;

 

    }

   private void ThisAddIn_Shutdown(object sender, System.EventArgs e)

    {

        myCustomTaskPaneCollection.Dispose();

}

对于绑定.NET Framework 3.5的项目:

[VB]

    Private myUserControl1 As MyUserControl

    Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

    Private myCustomTaskPaneCollection As Microsoft.Office.Tools.CustomTaskPaneCollection

 

    Private Sub ThisAddIn_Startup() Handles Me.Startup

        myUserControl1 = New MyUserControl

        myCustomTaskPaneCollection = New Microsoft.Office.Tools.CustomTaskPaneCollection _

            (Me.ItemProvider, Me.HostContext, "MyTaskPane", Me, "MyTaskPane")

        myCustomTaskPane = myCustomTaskPaneCollection.Add(myUserControl1, "My Task Pane")

        myCustomTaskPane.Visible = True

    End Sub

 

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown

        myCustomTaskPaneCollection.Dispose()

    End Sub

[C#]

    private MyUserControl myUserControl1;

    private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

    private Microsoft.Office.Tools.CustomTaskPaneCollection myCustomTaskPaneCollection;

 

    private void ThisAddIn_Startup(object sender, System.EventArgs e)

    {

        myUserControl1 = new MyUserControl();

        myCustomTaskPaneCollection = new Microsoft.Office.Tools.CustomTaskPaneCollection

                (this.ItemProvider, this.HostContext, "MyTaskPane", this, "MyTaskPane");

 

        myCustomTaskPane = myCustomTaskPaneCollection.Add(myUserControl1, "My Task Pane");

        myCustomTaskPane.Visible = true;

    }

 

    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)

    {

        myCustomTaskPaneCollection.Dispose();

}

想用Project 2007?没问题,检查一下这里。

所以,如果你正在使用  Visual Studio 2008,并且你没有 Project 2010项目模板,也没有问题。 Project 2010 可以承载Project 2007的外接程序。你需要做的只是去配置一下你的项目的设置,让 Project 2010可以运行起来。可执行文件的名字是WINPROJ.exe。

在解决方案浏览器中右击你的项目,选择属性,选择调试界面。下面的截屏显示了我的操作:

转载于:https://my.oschina.net/fenglinwansu/blog/2253395

在Project 2010中添加自定义任务窗格相关推荐

  1. 预览窗格无法预览word_使用Word 2010中的导航窗格轻松重组文档

    预览窗格无法预览word Microsoft Word has a zillion features, and even after using it for a while, you're alwa ...

  2. ms project 入门_Microsoft Project 2010入门

    ms project 入门 Would you like to keep your projects on track and keep track of how time and resources ...

  3. 从零开始系列-Project 2010视频教程 (102课时)

    大家好,自己录制的 <从零开始系列-Project 2010视频教程 (102课时)>,目录如下,欢迎大家收看,感谢大家多多支持,我会继续努力,谢谢! Project 2010课程目录 点 ...

  4. 《从零开始系列-Project 2010视频教程 (102课时)》 教你进行有效的项目管理

    2019独角兽企业重金招聘Python工程师标准>>> 想知道如何利用全新的Project 2010进行有效的项目管理吗?那么这篇<从零开始系列-Project 2010视频教 ...

  5. Microsoft Project 2010

    Microsoft Project (MSP)是微软开发的一个国际上享有盛誉的通用的项目管理工具软件,其凝集了许多成熟的项目管理现代理论和方法,包含了经典的项目管理思想和技术以及全球众多企业的项目管理 ...

  6. 了解如何在Microsoft Word中使用导航窗格

    The Navigation Pane in Word 2010 allows you to jump around your document in several ways. You can us ...

  7. Project 2010 概述

    Project 2010 简介 在 Project 2010 客户端版本中,我们致力于使其更易于进行入门学习.更易于规划和更易于报告.本文简要介绍 Project 2010 的几个亮点,您可以在 Pr ...

  8. Microsoft Project 2010 简介

    在 Project 2010 客户端版本中,我们致力于使其更易于进行入门学习.更易于规划和更易于报告.本文简要介绍 Project 2010 的几个亮点,您可以在 Project 团队的官方博客 中找 ...

  9. 基于Office Project 2010 管理软件研发项目新体验

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴!   微软 ...

最新文章

  1. springBoot 搭建web项目(前后端分离,附项目源代码地址)
  2. JDBC连接方式有哪几种
  3. 【深度学习】Panoptic FCN:真正End-to-End的全景分割
  4. SimpleDateFormat 按照不同要求去改写时间的格式,或者把时间串变成date类型
  5. 通过init-connect + binlog 实现MySQL审计功能
  6. android代码生成excel,AndroidExcel
  7. 《C和指针》——指向数组的指针(逐个移动和逐行的区别)
  8. sql sum()对空值的处理
  9. webrequest HttpWebRequest webclient/HttpClient
  10. Java中的break Label 和continue Label
  11. java设置本机地址写在哪个类_JAVA获取指定的类型的本机MAC地址
  12. 基于海康摄像头进行人脸识别
  13. 人工智能自动修复图片,模糊图片秒变高清
  14. 台式计算机进入安全模式蓝屏,电脑进入安全模式蓝屏怎么办?
  15. 2G、 3G、 4G、5G的区别
  16. 法大大完成3.98亿元C轮融资,虎环球基金和腾讯联合领投...
  17. 技术胖Web前端视频教程合集
  18. RedHat / Centos   Linux 系统运维与管理实践技巧荟萃,持续更新
  19. OPENCV混合高斯模型原理
  20. 【数据分析】双因素方差分析

热门文章

  1. leetcode算法题--复制带随机指针的链表★
  2. Sentinel: 分布式系统的流量防卫兵
  3. MVVM框架的搭建(二)——项目搭建
  4. jQuery hash
  5. U盘中的autorun.inf
  6. Exchange2010 初始化失败
  7. python搜索关键词自动提交订单_Python批量获取淘宝相关搜索和下拉框关键词
  8. ifs 报表开发手册_房地产开发资质要求《暂定资质证书》相关规定
  9. 华为-yolo系列详解
  10. 数据结构 结构的声明 一个结构作为另一个结构的成员 单向链表的实现 双向链表的实现