学习微软 VSTO 自定义"任务窗格"示例的异常的解决方案

近日,在学习 VSTO 开发时,仿照微软官方 VSTO 开发实例 ➔ 自定义"任务窗格"时,遇到异常,查询网上很久都无解。昨日一次偶然发现了破绽,现将解决方法记录如下:

VSTO Excel 自定义"任务窗格"官网实例代码无效 的解决方案

微软官网 VSTO 开发实例中"向应用程序添加自定义任务窗格"给出两段代码,分别是:

public partial class ThisAddIn
{
	private MyUserControl myUserControl1;
	private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
	//启动
	private void ThisAddIn_Startup(object sender, System.EventArgs e)
	{
		myUserControl1 = new MyUserControl();
		myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
		myCustomTaskPane.Visible = true;
	}
}

该实例我分别在两台PC上进行运行,其中一台与官网效果无误,完美实现效果。另一台始终弹不出“任务窗格”,多次检查代码和过程,仍然依旧无效,甚至重建项目重做,仍然无效。甚至设置断点跟踪都看不到 bug,但就是没效果。

几天后,再次进行下一步的学习时,无意中发现了异常,用不是很规范的UML时序图描述为下图: VSTO CustomTaskPane Error

上图由蓝色粗线将两台PC运行时序分开,上半部是正常效果,下半部是错误效果的时序。

造成影响估计是 Office 其他插件导致的。

解决方法

将代码修改为:

public partial class ThisAddIn
{
	private MyUserControl myUserControl1;
	private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
	int i=0; //避免 CustomTaskPane 被重复 new 。
	private void ThisAddIn_Startup(object sender, System.EventArgs e)
	{
		if(i==0)
		{
		myUserControl1 = new MyUserControl();
		myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
		myCustomTaskPane.Visible = true;
		i++;
		}
	}
}

修改后的代码,在不同 PC 上均可靠运行。

转载于:https://my.oschina.net/primates/blog/3033119

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VSTO(Visual Studio Tools for Office)是一种用于开发Office应用程序的工具集,其中包括了Excel任务(Task Pane)的开发。 Excel任务是一个可嵌入在Excel界面中的小工具口,它能够为用户提供附加的功能和信息。通过VSTO,我们可以在Excel中创建自定义任务,以实现各种功能的扩展。 使用VSTO开发Excel任务,首先需要在Visual Studio中创建一个VSTO项目。在项目中,可以通过向项目添加Windows口控件来创建任务的布局。我们可以在任务中添加各种控件,例如按钮、文本框、表等,以提供交互式的功能。 开发Excel任务的关键在于与Excel对象模型的交互。通过VSTO,我们可以直接访问和操作Excel的工作簿、工作表、单元等对象,以实现任务与Excel数据之间的交互。例如,我们可以编写代码来读取和写入Excel中的数据,或者执行一些数据处理和计算操作。 除了与Excel对象模型的交互,任务还可以与其他外部数据源进行集成。我们可以通过VSTO提供的数据绑定机制,将任务与数据库、Web服务等进行连接,实现数据的获取和更新。 开发完成后,任务可以通过VSTO部署工具进行部署,使其能够在用户的Excel中使用。用户在打开Excel时,任务会自动加载,并成为Excel的一部分。 总而言之,VSTO Excel任务是一种能够增强Excel功能的工具,可以通过VSTO进行开发和部署。它通过提供定制化的功能和与Excel对象模型的交互,为用户带来更加灵活和高效的Excel体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值