c# - 在 VSTO 插件 Word 中将项目添加到组合框或库
问题描述
我需要从一个位置获取文件列表并将它们的名称(如项目)放入功能区中的组合框或图库或下拉列表(列表更好)中。
但我不明白如何将数据导入下拉列表。我现在有这个:
using System.IO;
using System.Data;
using System;
using Microsoft.Office.Tools.Ribbon;
private void ComboBox1_TextChanged(object sender, RibbonControlEventArgs e)
{
DirectoryInfo d = new DirectoryInfo(@"C:\install\CSharp");//Getting files info
FileInfo[] Files = d.GetFiles("*.dot*"); //Getting dot or dotm
string str = "";
var filtered = Files.Where(f => !f.Attributes.HasFlag(FileAttributes.Hidden)); //Getting out the hidden files
foreach (FileInfo file in filtered)
{
str = file.Name;
File.AppendAllText(@"C:\install\CSharp\tulemus.txt", $"File name is: {str}" + Environment.NewLine); //but I want to put them in to my Combobox
//this.comboBox1.Items.Add(("How to put filtered info here instead of a text file"));
}
}
Visual Studio 错误是:
严重性代码 描述 项目文件行抑制状态错误 CS1503 参数 1:无法从 'string' 转换为 'Microsoft.Office.Tools.Ribbon.RibbonDropDownItem' TemplateCopying C:\Users****\source\repos\TemplateCopying\Ribbon1.cs 39 活跃
解决方案
DropDown
对于下拉列表,从 Visual Studio 的工具/Office 功能区控件窗格中插入控件。在属性窗格中为其分配名称和标签。出于讨论的目的,将一个名为 DropDown 的控件ddList
添加到了功能区选项卡中。
下一个决定是,何时应该填充列表?
- 如果列表应该是静态的,请转到
Buttons
“属性”中的条目并单击它以获取可以键入静态列表的界面。 - 为了在创建功能区(加载 VSTO 项目)时填充列表,在功能区的
Load
事件中编写代码 - 要在 VSTO 项目会话期间动态更改列表,请运行基本相同的代码,但在需要时(例如单击按钮)
填充列表的示例代码。RibbonDropDownItem
为每个列表条目创建一个。分配属性,然后将条目附加 ( Add
) 到 DropDown 控件。代码是相同的,无论是在Load
事件中触发,还是由下拉菜单本身的事件触发,还是由按钮触发。(注意:如果按钮的事件代码不在 Ribbon 中,则需要对 Ribbon 类的引用。)
RibbonDropDownItem ddItem1 = new RibbonDropDownItem();
ddItem1.Label = "Item added at runtime";
ddList.Items.Add(ddItem1);
在功能区设计器中编程控件的背景
使用 Ribbon Designer 时,VSTO 将 Office Fluent UI 抽象化,并提供比直接使用 Ribbon XML 更“直观”的开发界面。因此,VSTO 不是编写回调,而是创建可以类似于 Windows 窗体控件使用的对象。
这些可以通过 Ribbon 类访问,默认情况下 VSTO 将创建(例如): Ribbbon1.cs 要为控件的默认事件生成代码存根,请双击该控件。要为其他事件生成代码存根,请在“属性窗格”中切换到“事件”页面并双击。
推荐阅读
- asp.net - 如何模拟登录用户来管理其他 Azure 服务
- python - Pandas:将人们分组到家庭中以生成描述
- javascript - 如何在内容可编辑中记住选定的文本并从输入中应用样式?
- python - 如何在一个 HTML 页面 Django 中使用两种不同的功能
- python - 函数中发生了什么?
- vba - 使 Set 焦点成为 SAP 宏的变量
- python - 用漂亮的汤从网站上刮取 data-encoded-url
- apache-spark - Spark UI 完全扭曲
- vba - 想要在 vba 中弹出消息“ABC”而不是错误 5
- reactjs - 无法在网页中显示控制台数据