分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【VB.Net版】

发布时间:2023-09-06 02:26责任编辑:林大明关键词:暂无标签

VSTO中的自定义功能区和自定义任务窗格需要用到各种命名空间、添加所需文件,才能实现。后来我发现可以把所有代码都写在ThisAddin.vb这个默认文件中。

大家可以在Visual Studio中创建一个外接程序项目,然后把ThisAddin.vb中的代码整体替换为下面我贴的这个代码。然后启动调试,就可以看到自定义功能区和任务窗格了。

 1 Imports Microsoft.Office.Core 2 Public Class ThisAddIn 3 ?4 ????Private Sub ThisAddIn_Startup() Handles Me.Startup 5 ????????CreateCTP() 6 ????End Sub 7 ?8 ????Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown 9 ????????DisposeCTP()10 ????End Sub11 ????Protected Overrides Function CreateRibbonExtensibilityObject() As IRibbonExtensibility12 ????????Return New Ribbon1()13 ????End Function14 End Class15 16 <System.Runtime.InteropServices.ComVisible(True)>17 Public Class Ribbon118 ????Implements IRibbonExtensibility19 ????Public R As IRibbonUI20 ????Public Function GetCustomUI(RibbonID As String) As String Implements IRibbonExtensibility.GetCustomUI21 ????????Dim xml As XElement22 ????????xml = <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="OnLoad">23 ??????????????????<ribbon startFromScratch="false">24 ??????????????????????<tabs>25 ??????????????????????????<tab id="Tab1" label="RibbonXmlEditor">26 ??????????????????????????????<group id="Group1" label="Author:ryueifu">27 ??????????????????????????????????<button id="Button1" label="CTP" imageMso="C" onAction="Button1_Click"/>28 ??????????????????????????????????<button id="Button2" label="UnLoad" imageMso="U" onAction="Button2_Click"/>29 ??????????????????????????????</group>30 ??????????????????????????</tab>31 ??????????????????????</tabs>32 ??????????????????</ribbon>33 ??????????????</customUI>34 ????????Return xml.ToString()35 ????End Function36 ????Public Sub OnLoad(ribbon As IRibbonUI)37 ????????R = ribbon38 ????????R.ActivateTab(ControlID:="Tab1")39 ????End Sub40 ????Public Sub Button1_Click(control As IRibbonControl)41 ????????ctp.Visible = Not ctp.Visible42 ????End Sub43 ????Public Sub Button2_Click(control As IRibbonControl)44 ????????Dim ThisCOM As COMAddIn45 ????????ThisCOM = Globals.ThisAddIn.Application.COMAddIns.Item(Index:=My.Application.Info.AssemblyName)46 ????????ThisCOM.Connect = False47 ????End Sub48 End Class49 50 Public Module Module151 ????Public uc As System.Windows.Forms.UserControl52 ????Public ctp As Microsoft.Office.Tools.CustomTaskPane53 ????Public Sub CreateCTP()54 ????????uc = New Windows.Forms.UserControl55 ????????ctp = Globals.ThisAddIn.CustomTaskPanes.Add(control:=uc, title:="CTP")56 ????????With ctp57 ????????????.DockPosition = MsoCTPDockPosition.msoCTPDockPositionRight58 ????????????.Visible = True59 ????????End With60 ????End Sub61 ????Public Sub DisposeCTP()62 ????????ctp.Dispose()63 ????End Sub64 End Module

VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【VB.Net版】

原文地址:https://www.cnblogs.com/ryueifu-VBA/p/10122590.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved