宿主项和宿主控件概述

转自http://msdn.microsoft.com/zh-cn/library/9z4e3456(VS.80).aspx

宿主项和宿主控件概述

Visual Studio 2005       
            1(共 6)对本文的评价是有帮助 - 评价此主题

宿主项和宿主控件是为 Visual Studio Tools for Office 解决方案提供编程模型的类。即,它们使得与基于 COM 的 Microsoft Office 应用程序进行交互更像与托管对象进行交互。

宿主项

宿主项为 Visual Studio Tools for Office 解决方案中的代码提供入口点。

应用程序级外接程序使用 Microsoft.Office.Tools.AddIn 宿主项。此宿主项提供对宿主应用程序和成员的对象模型的访问,这些宿主应用程序和成员可用来自定义宿主应用程序的用户界面。有关更多信息,请参见 AddIn

文档级自定义项使用另一组宿主项,这些宿主项中包括 Microsoft.Office.Tools.Word.Document Microsoft.Office.Tools.Excel.Worksheet。这些宿主项拥有设计器,它们是类的可视化表示,与 Windows 窗体设计器非常相似。这些宿主项可绑定到数据,而且是宿主控件和 Windows 窗体控件等控件的容器。有关更多信息,请参见 文档Worksheet

还有一个 Microsoft.Office.Tools.Excel.Workbook 宿主项,但它不作为宿主控件的容器。工作簿的作用相当于一个组件栏,使您能够将诸如 DataSet 之类的组件拖动到它的设计图面上。有关更多信息,请参见 Workbook

宿主控件

宿主控件扩展了 Microsoft Office Word 2003 和 Microsoft Office Excel 2003 对象模型中的对象;换言之,宿主控件基于本机 Office 对象。宿主控件仅在文档级自定义项中可用。

添加到 Office 文档中的宿主控件的行为与本机 Office 对象(例如,范围)的行为类似;但是宿主控件还拥有其他功能,包括事件和数据绑定功能。例如,要捕获 Excel 中本机 Microsoft.Office.Interop.Excel.Range 对象的事件,必须首先捕获工作表的更改事件。然后必须确定 Microsoft.Office.Interop.Excel.Range 中是否发生了更改。使用 Microsoft.Office.Tools.Excel.NamedRange 控件,可以直接访问更改事件。

自定义项中宿主项和宿主控件之间的关系与 Windows 窗体和 Windows 窗体控件之间的关系非常相似。就像在 Windows 窗体上放置文本框控件一样,您可以在 Microsoft.Office.Tools.Excel.Worksheet 宿主项上放置 Microsoft.Office.Tools.Excel.NamedRange 控件。

此外,Visual Studio Tools for Office 还允许将 Windows 窗体控件直接添加到 Word 和 Excel 文档图面中,从而使您可以在文档级项目中使用 Windows 窗体控件。有关更多信息,请参见 Office 文档上的 Windows 窗体控件概述

Note注意

不支持向 Word 子文档添加宿主控件或 Windows 窗体控件。

将宿主项和宿主控件与本机 Office 对象进行比较

文档级项目中的宿主项和宿主控件与底层的本机 Office 对象相比,在几个方面都存在不同。此外,在针对宿主项或宿主控件进行编程时还存在一些限制。有关更多信息,请参见 宿主项和宿主控件的编程限制

宿主项和宿主控件与本机 Office 对象的不同体现在以下几个方面:

  • 通常,宿主控件具有的基本功能与作为其基础的 Office 对象的基本功能相同,但它们在以下方面进行了改进:

    • 提供了更加丰富的事件模型。

    • 具备数据绑定功能。

    在某些情况下,由于控件是由不同类型的对象组合创建的,基本功能也会存在一些不同。有关示例,请参见 Bookmark 控件

  • 宿主控件是构建在本机 Office 对象之上的 Microsoft .NET 友好的类。

  • 宿主控件为 Microsoft.Office.Tools.ExcelMicrosoft.Office.Tools.Word 类型,而本机对象则为 Microsoft.Office.Interop.ExcelMicrosoft.Office.Interop.Word 类型。

  • 宿主项不能以编程方式创建;但是,大多数宿主控件都能以编程方式添加到 Word 或 Excel 文档中,或从中删除。有关更多信息,请参见 宿主项和宿主控件的编程限制

将宿主控件添加到文档中

可以通过以下四种方法向 Word 2003 文档或 Excel 2003 工作表中添加宿主控件:

为宿主控件命名

如果将某个宿主控件从“工具箱”拖动到文档中,该控件将自动以控件类型来命名,并在末尾追加递增的编号。例如,第一个书签的名称将为 Bookmark1,第二个书签的名称将为 Bookmark2。如果使用 Word 或 Excel 的本机功能添加控件,则可以在创建控件时为控件指定特定的名称。还可以使用“属性”窗口中的 Name 属性重命名控件。

Note注意

不能使用保留字命名宿主控件。例如,如果将 NamedRange 控件添加到工作表,并将名称更改为“System”,生成项目时就会发生错误。

删除宿主控件

多数情况下,在 Excel 工作表或 Word 文档中选择控件并按 Delete 键,便可在设计时删除宿主控件。但是,必须在 Excel 中使用“定义名称”对话框删除 NamedRange 控件。有关更多信息,请参见 如何:在设计时删除 NamedRange 控件

如果在设计时向文档添加宿主控件,则不应在运行时以编程方式移除该控件,因为下次尝试在代码中使用此控件时会引发异常。宿主控件的 Delete 方法只移除在运行时向文档中添加的宿主控件。如果调用在设计时创建的宿主控件的 Delete 方法,就会引发异常。例如,Bookmark1.Delete 只能成功删除以编程方式添加到文档中的 Bookmark1。将控件名传递给 ControlsCollectionRemove 方法,也可以移除动态创建的宿主控件。有关更多信息,请参见 在运行时向 Office 文档添加控件

如果最终用户在运行时从文档中删除一个宿主控件(如书签),解决方案可能会以意想不到的方式失败。可以在 Word 和 Excel 中使用文档保护功能,以使宿主控件不被删除。有关更多信息,请参见 Word 文档保护技术示例Excel 文档保护技术示例

Note注意

不要在文档的 Shutdown 事件处理程序执行期间以编程方式移除控件。Shutdown 事件发生时,文档的 UI 元素不再可用。如果要在应用程序关闭之前移除控件,请将代码添加到另一个事件处理程序中,如 BeforeCloseBeforeSave

可用的宿主项和宿主控件

下面列出了可以在 Visual Studio Tools for Office 解决方案中使用的宿主项和宿主控件。

Excel 宿主项
Word 宿主项
外接程序宿主项
Excel 宿主控件
Word 宿主控件

针对宿主控件事件编程

宿主控件扩展 Office 对象的方法之一是添加事件。例如,Excel 中的 Microsoft.Office.Interop.Excel.Range 对象和 Word 中的 Microsoft.Office.Interop.Word.Bookmark 对象没有事件,但是 Visual Studio Tools for Office 通过添加可编程事件来扩展这些对象。您可以访问这些事件并针对这些事件进行编码,其方式与访问 Windows 窗体上的控件事件的方式相同:即通过 Visual Basic 中的事件下拉列表和 C# 中的事件属性页。有关更多信息,请参见 演练:根据 NamedRange 控件的事件进行编程

Note注意

不应将 Excel 中 Application 对象的 EnableEvents 属性设置为 false。将此属性设置为 false 将阻止 Excel 引发任何事件,包括宿主控件的事件。

将数据绑定到宿主控件

宿主控件还通过启用数据绑定来扩展 Office 对象。宿主控件与 Windows 窗体上的控件具有相同的数据绑定功能。您可以将宿主控件绑定到数据源,如数据集和数据表。宿主控件支持简单数据绑定或复杂数据绑定。有关更多信息,请参见 演练:将工作表单元格绑定到数据库字段演练:将单元格绑定到表中的多个列

简单数据绑定

当控件属性绑定到单个数据元素(如数据表中的值)时,便存在简单数据绑定。例如,NamedRange 控件中便有一个可绑定到数据集中一个字段的 Value2 属性。当数据集中的字段发生更改时,命名范围内的值也会发生更改。除 Microsoft.Office.Tools.Word.XMLNodes 外的所有宿主控件都支持简单数据绑定。XMLNodes 控件是一个集合,因此不支持数据绑定。

复杂数据绑定

当控件属性绑定到多个数据元素(如数据表中的多个列)时,便存在复杂数据绑定。例如,Microsoft.Office.Tools.Excel.ListObject 控件便有一个可绑定到数据表中多个列的 DataSource 属性。数据表中的所有数据都显示在 Microsoft.Office.Tools.Excel.ListObject 控件中,而当数据表中的数据发生更改时,Microsoft.Office.Tools.Excel.ListObject 也会发生更改。只有 Microsoft.Office.Tools.Excel.ListObject 控件支持复杂数据绑定。

请参见

 

代码转载自:https://pan.quark.cn/s/a4b39357ea24 本文重点阐述了利用 LabVIEW 软件构建的锁相放大器的设计方案及其具体实施流程,并探讨了该设备在声波相位差定位系统中的实际运用情况。 锁相放大器作为一基础测量技术,其核心功能在于能够精确锁定微弱信号的频率参数并完成相关测量工作。 在采用 LabVIEW 软件开发的锁相放大器系统中,通过计算测量信号与两条参考信号之间的互相关函数,实现对微弱信号的频率锁定,同时输出被测信号的幅值信息。 虚拟仪器技术是一种基于计算机硬件平台的仪器系统,其显著特征在于用户可以根据实际需求自主设计仪器功能,配备虚拟化操作界面,并将测试功能完全由专用软件程序实现。 虚拟仪器系统的基本架构主要由计算机主机、专用软件程序以及硬件接口模块等核心部件构成。 虚拟仪器最突出的优势在于其功能完全取决于软件编程,用户可以根据具体应用场景灵活调整系统功能参数。 在基于 LabVIEW 软件开发的锁相放大器系统中,主要运用 LabVIEW 软件平台完成锁相放大器功能的整体设计。 LabVIEW 作为一个图形化编程环境,能够高效地完成虚拟仪器的开发工作。 借助 LabVIEW 软件,可以快速构建锁相放大器的用户操作界面,并且可以根据实际需求进行灵活调整功能扩展。 锁相放大器系统的关键构成要素包括测量信号输入通道、参考信号输入通道、频率锁定处理单元以及信号幅值输出单元。 测量信号是系统需要检测的对象,参考信号则用于引导系统完成对测量信号的频率锁定。 频率锁定处理单元负责实现测量信号的锁定功能,信号幅值输出单元则负责输出被测信号的幅值大小。 在锁相放大器的实际实现过程中,系统采用了双路参考信号输入方案来锁定测量信号。 通过分析两路参考信号之间的相...
边缘计算环境中基于启发式算法的深度神经网络卸载策略(Matlab代码实现)内容概要:本文介绍了在边缘计算环境中,利用启发式算法实现深度神经网络任务卸载的策略,并提供了相应的Matlab代码实现。文章重点探讨了如何通过合理的任务划分与调度,将深度神经网络的计算任务高效地卸载到边缘服务器,从而降低终端设备的计算负担、减少延迟并提高整体系统效率。文中涵盖了问题建模、启发式算法设计(如贪心策略、遗传算法、粒子群优化等可能的候选方法)、性能评估指标(如能耗、延迟、资源利用率)以及仿真实验结果分析等内容,旨在为边缘智能计算中的模型推理优化提供可行的技术路径。; 适合人群:具备一定编程基础,熟悉Matlab工具,从事边缘计算、人工智能、物联网或智能系统优化方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究深度神经网络在资源受限设备上的部署与优化;②探索边缘计算环境下的任务卸载机制与算法设计;③通过Matlab仿真验证不同启发式算法在实际场景中的性能表现,优化系统延迟与能耗。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注算法实现细节与仿真参数设置,同时可尝试复现并对比不同启发式算法的效果,以深入理解边缘计算中DNN卸载的核心挑战与解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值