在Project 2010中添加自定义任务窗格

原文作者: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。

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

 2010060915444251.png

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值