我需要从一个位置获取文件列表,并将其名称(如项目)放入功能区中的comboBox或Gallery或Dropdownlist(列表比较好)。
但是我不明白如何将数据导入下拉列表。我现在有这个:
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:无法从“字符串”转换为'Microsoft.Office.Tools.Ribbon.RibbonDropDownItem'TemplateCopying C:\ Users **** \ source \ repos \ TemplateCopying \ Ribbon1.cs 39有效
对于下拉列表,从Visual Studio的“工具/ Office功能区控件”窗格中插入DropDown
控件。在“属性”窗格中为其分配名称和标签。为了便于讨论,已将名为ddList
的DropDown控件添加到“功能区”选项卡。
下一个决定是,何时应填充列表?
Buttons
条目,然后单击它以获取可以在其中键入静态列表的界面。Load
事件中编写代码用于填充列表的示例代码。为每个列表条目创建一个RibbonDropDownItem
。分配属性,然后将条目附加(Add
)到DropDown控件。无论是在Load
事件中,通过下拉事件本身还是通过按钮触发,代码都是相同的。 (注意:如果功能区中没有按钮的事件代码,则需要对功能区类的引用。)
RibbonDropDownItem ddItem1 = new RibbonDropDownItem();
ddItem1.Label = "Item added at runtime";
ddList.Items.Add(ddItem1);
功能区设计器中用于编程控件的背景
[使用Ribbon Designer时,VSTO可以抽象Office Fluent UI并提供比直接使用Ribbon XML更“直观”的开发界面。因此,VSTO无需编写回调,而是创建可以类似于Windows Forms控件使用的对象。
这些可以通过Ribbon类访问,默认情况下,VSTO将创建(例如):Ribbbon1.cs要为控件的默认事件生成代码存根,请双击该控件。为了生成其他事件的代码存根,请在“属性”窗格中切换到“事件”页面,然后双击。