Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1849|回复: 0

[分享] VSTO探索笔记之动态加载RibbonDropDown控件

[复制链接]
发表于 2021-8-8 17:55 | 显示全部楼层 |阅读模式
本帖最后由 sanbe 于 2021-10-1 14:55 编辑

测试环境:
  1. Windows10 64位专业版
  2. Microsoft Office 专业增强版2019
  3. Visual Studio 2019  C#9.0
  4. .NET Framework 4.6.2
复制代码
QQ浏览器截图20210808175350.png

Ribbon代码:
  1. namespace YudiStudio.VSTO.CardClock
  2. {
  3.         public partial class Ribbon_CardClock
  4.         {
  5.                 public static string LastErrorInfo { get; set; }
  6.                 public static List<Entities.CardClockTcpInfo> CardClockTcpInfos { get; set; }
  7.                 private void Ribbon_CardClock_Load(object sender, RibbonUIEventArgs e)
  8.                 {
  9.                         this.DropDown_CardClock_Select.ItemsLoading += this.DropDown_CardClock_Select_ItemsLoading;
  10.                         this.DropDown_CardClock_Select.SelectionChanged += this.DropDown_CardClock_Select_SelectionChanged;
  11.                         CardClockTcpInfos = Utilities.CardClockHelper.GetCardClockTcpInfos();
  12.                 }

  13.                 private void DropDown_CardClock_Select_SelectionChanged(object sender, RibbonControlEventArgs e)
  14.                 {
  15.                         switch (DropDown_CardClock_Select.SelectedItem.Tag)
  16.                         {
  17.                                 case "CradClockInfo":
  18.                                         new Form_CardClockInfo().ShowDialog();
  19.                                         break;
  20.                                 case "default":
  21.                                         break;
  22.                                 default:
  23.                                         var app = Globals.ThisAddIn.Application;
  24.                                         Utilities.CardClockHelper.ReadData(DropDown_CardClock_Select.SelectedItem.Tag.ToString(), app);
  25.                                         break;
  26.                         }
  27.                 }

  28.                 public void DropDown_CardClock_Select_ItemsLoading(object sender, RibbonControlEventArgs e) => this.ItemsLoading();

  29.                 public void ItemsLoading()
  30.                 {
  31.                         try
  32.                         {
  33.                                 DropDown_CardClock_Select.Items.Clear();
  34.                                 RibbonDropDownItem downItemDefault = this.Factory.CreateRibbonDropDownItem();
  35.                                 downItemDefault.Tag = "default";
  36.                                 downItemDefault.Label = "";
  37.                                 DropDown_CardClock_Select.Items.Add(downItemDefault);
  38.                                 RibbonDropDownItem downItemCradClockInfo = this.Factory.CreateRibbonDropDownItem();
  39.                                 downItemCradClockInfo.Tag = "CradClockInfo";
  40.                                 downItemCradClockInfo.Label = "卡机管理";
  41.                                 DropDown_CardClock_Select.Items.Add(downItemCradClockInfo);
  42.                                 for (int intCount = 0; intCount < CardClockTcpInfos?.Count; intCount++)
  43.                                 {
  44.                                         RibbonDropDownItem downItem = this.Factory.CreateRibbonDropDownItem();
  45.                                         downItem.Tag = CardClockTcpInfos[intCount].ClockId;
  46.                                         downItem.Label = CardClockTcpInfos[intCount].Name;
  47.                                         DropDown_CardClock_Select.Items.Add(downItem);
  48.                                 }
  49.                         }
  50.                         catch (Exception ex)
  51.                         {
  52.                                 LastErrorInfo = ex.ToString();
  53.                         }
  54.                 }
  55.         }
  56. }
复制代码
完整源代码

其它笔记链接:VSTO探索笔记

评分

参与人数 1学分 +3 收起 理由
cutecpu + 3 学习了

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-26 15:07 , Processed in 0.795558 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表