Excel VSTO开发10 -自定义任务面板

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

10 自定义任务面板

自定义任务面板(有些地方称为侧边面板)即CustomTaskPane,这个类在Microsoft.Office.Tools下面。以下将详细讲述如何实现自定义任务面板。

[代码6] CustomTaskPane的创建和使用

向项目添加一个“用户控件”,

19 选择“用户控件”

在开发界面根据需要向用户控件窗体上增加相应内容。

20 设计“用户控件”界面

在ThisAddIn类代码下面添加:

'定义一个带事件的自定义任务面板

Public WithEvents AboutTaskPan As Microsoft.Office.Tools.CustomTaskPane

在ThisAddIn_Startup()中添加

    '插件启动时候

    Private Sub ThisAddIn_Startup() Handles Me.Startup

        System.Diagnostics.Debug.WriteLine("Startup")

        Dim userAbout As New UserControl1

        '添加自定义任务面板,将会显示用户控件

        AboutTaskPan = Globals.ThisAddIn.CustomTaskPanes.Add(userAbout, "任务面板")

        AboutTaskPan.Visible = True

        AboutTaskPan.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition. msoCTPDockPositionRight

    End Sub

运行结果如下:

21 Excel窗口右侧显示“任务面板”

在Ribbon开发界面下添加一个Group3,并在上面增加一个ToggleButton1:

22 Ribbon界面下增加ToggleButton

双击ToggleButton1,添加代码:

    Private Sub ToggleButton1_Click(sender As Object, e As RibbonControlEventArgs) Handles ToggleButton1.Click

        Globals.ThisAddIn.AboutTaskPan.Visible = ToggleButton1.Checked

End Sub

继续在ThisAddIn类代码下面添加如下代码:

    Private Sub AboutTaskPan _VisibleChanged(sender As Object, e As EventArgs) Handles AboutTaskPan.VisibleChanged

        Dim aboutribbon As Ribbon1 = Globals.Ribbons(0)  '.GetRibbon("Ribbon1")

        aboutribbon.ToggleButton1.Checked = AboutTaskPan.Visible

End Sub

上述代码在单击ToggleButton1后,根据ToggleButton1被选中的状态来决定是否显示“任务面板”,同时关闭“任务面板”时,调整ToggleButton1的显示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/72138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录二刷day15

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣102. 二叉树的层序遍历二、力扣107. 二叉树的层序遍历 II三、力扣199. 二叉树的右视图四、力扣637. 二叉树的层平均值五、力扣429. N 叉树的层序遍历六…

leetcode 第 361 场周赛

2843. 统计对称整数的数目 核心思想:枚举每一个数是否是对称整数,第一种写法为python写法,第二种为一般写法我觉得更好,非常有思想性。 2844. 生成特殊数字的最少操作 核心思想:枚举特殊数字结尾的几种可能。其实自己做的时候一…

2023/09/07 c++qt day2

#include <iostream>using namespace std; //封装一个学生类 struct stu { private://存放学生的成绩int stu_score[256];//记录学生个数int stu_num; public://用于设置学生个数void setNum(){cout<<"请输入学生的个数"<<" ";cin>&g…

Stable Diffuse 之 本地环境部署 WebUI 进行汉化操作

Stable Diffuse 之 本地环境部署 WebUI 进行汉化操作 目录 Stable Diffuse 之 本地环境部署 WebUI 进行汉化操作 一、简单介绍 二、汉化操作 附录&#xff1a; 一、Install from URL 中出现 Failed to connect to 127.0.0.1 port 7890: Connection refused 错误&#xf…

蓝桥杯练习题(3的倍数)

问题描述 小蓝对 3 的倍数很感兴趣。现在他手头有三个不同的数 a,b,c, 他想知道, 这三个数中是不是有两个数的和是 3 的倍数。 例如, 当 a3,b4,c6 时, 可以找到 a 和 c 的和是 3 的倍数。 例如, 当 a3,b4,c7 时, 没办法找到两个数的和是 3 的倍数。 输入格式 输入三行, 每行…

vscode ros配置

【ROS】VSCODE ROS 配置方法&#xff08;保姆级教程&#xff0c;总结了多篇&#xff09;_ros vscode_晴明大大的博客-CSDN博客

网络编程、多路复用和多路并发的区别、

在网络编程中&#xff0c;多路复用&#xff08;Multiplexing&#xff09;和多路并发&#xff08;Multithreading/Multiprocessing&#xff09;是两种不同的技术&#xff0c;用于处理多个客户端连接。它们有以下区别&#xff1a; 1.多路复用&#xff08;Multiplexing&#xff0…

【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码

【2023高教社杯数学建模国赛】ABCD题 问题分析、模型建立、参考文献及实现代码 1 比赛时间 北京时间&#xff1a;2023年9月7日 18:00-2023年9月10日20:00 2 思路内容 可以参考我提供的历史竞赛信息内容&#xff0c;最新更新我会发布在博客和知乎上&#xff0c;请关注我获得最…

重写与重载笔记

方法的重载(overload)&#xff1a;---------------------大大简化方法的调用 发生在同一类中&#xff0c;方法名相同&#xff0c;参数列表不同,方法的重载与返回值类型无关编译器在编译时会根据方法的签名自动绑定调用的方法 重写&#xff1a; 发生在父子类中&#xff0c;方法名…

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(9 月 6 日论文合集)

文章目录 一、分割|语义相关(19篇)1.1 DCP-Net: A Distributed Collaborative Perception Network for Remote Sensing Semantic Segmentation1.2 Self-Supervised Pre-Training Boosts Semantic Scene Segmentation on LiDAR data1.3 DeNISE: Deep Networks for Improved Segm…

C++核心编程--类篇

C核心编程 1.内存分区模型 C程序在执行时&#xff0c;将内存大方向分为4个区域 意义&#xff1a;不同区域存放数据&#xff0c;赋予不同的生命周期&#xff0c;更能灵活编程 代码区&#xff1a;存放函数体的二进制代码&#xff0c;由操作系统进行管理的全局区&#xff1a;存放…

Vue3+Element Plus实现el-table跨行显示(非脚手架)

Vue3Element Plus实现el-table跨行显示 app组件内容使用:span-method"objectSpanMethod"自定义方法实现跨行显示查询方法初始化挂载新建一个html即可进行测试&#xff0c;完整代码如下效果图 app组件内容 <div id"app"><!-- 远程搜索 --><e…

算法训练day43|动态规划 part05:0-1背包 (LeetCode 1049. 最后一块石头的重量 II、494. 目标和、474.一和零)

文章目录 1049. 最后一块石头的重量 II思路分析代码实现 494. 目标和思路分析动规方法代码实现总结思考 474.一和零思路分析代码实现思考总结 var code "57a5e730-4e5e-43ad-b567-720d69f0371a"1049. 最后一块石头的重量 II 题目链接&#x1f525;&#x1f525; 有…

揭秘拼多多API接口:让商家和用户实现高效连接与便捷操作

随着电商行业的飞速发展&#xff0c;拼多多作为一家新兴电商平台&#xff0c;近年来已逐渐成为市场的焦点。为了满足商家和用户的需求&#xff0c;拼多多不断创新&#xff0c;推出了智能化的API接口&#xff0c;以实现更加高效、便捷的操作和管理。本文将深入探讨拼多多API接口…

提高使用VS Code工作效率的技巧

提高使用VS Code工作效率的技巧 时间轴视图&#xff1a;本地源代码控制 时间轴视图为我们提供了内置的源代码控制。 我们中的许多人都知道 Git 和其他源代码控制工具有多么有用&#xff0c;它们可以帮助我们轻松跟踪文件更改并在需要时恢复到之前的状态。 因此&#xff0c;…

MySQL数据库——基础篇总结(概述、SQL、函数、约束、多表查询、事务)

目录 概述 概念 MySQL启动与停止 客户端连接 关系型数据库&#xff08;RDBMS&#xff09; SQL 数据类型 DDL DML DQL DCL 函数 字符串函数 数值函数 日期函数 流程函数 约束 多表查询 多表关系 笛卡尔积 内连接 外连接 自连接 联合查询 子查询 事…

LeetCode 面试题 03.05. 栈排序

文章目录 一、题目二、C# 题解 一、题目 栈排序。 编写程序&#xff0c;对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放数据&#xff0c;但不得将元素复制到别的数据结构&#xff08;如数组&#xff09;中。该栈支持如下操作&#xff1a;push、pop、peek 和…

go基础08-map的内部实现

和切片相比&#xff0c;map类型的内部实现要复杂得多。Go运行时使用一张哈希表来实现抽象的map类型。运行时实现了map操作的所有功能&#xff0c;包括查找、插入、删除、遍历等。在编译阶段&#xff0c;Go编译器会将语法层面的map操作重写成运行时对应的函数调用。 下面是大致的…

YOLOV7改进-添加Deformable Conv V2

可变形卷积link class DCNv2(nn.Module):def __init__(self, in_channels, out_channels, kernel_size, stride1,padding1, groups1, actTrue, dilation1, deformable_groups1):super(DCNv2, self).__init__()self.in_channels in_channelsself.out_channels out_channelsse…

QT for andriod

QT for andriod 开发 apk软件&#xff0c;因为一些特殊的原因&#xff0c;在这里简单的记录一哈自己开发apk的流程和心得。 首先说明我采用的环境有哪些&#xff1f; 1、QT的版本&#xff0c;个人建议5.15.2的版本及以上&#xff0c;我是用的5.15.2。 2、andriod studio 可以…