将项目添加到VSTO插件Word中的组合框或库中

问题描述 投票:0回答:1

我需要从一个位置获取文件列表,并将其名称(如项目)放入功能区中的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有效

c# drop-down-menu combobox ms-word vsto
1个回答
1
投票

对于下拉列表,从Visual Studio的“工具/ Office功能区控件”窗格中插入DropDown控件。在“属性”窗格中为其分配名称和标签。为了便于讨论,已将名为ddList的DropDown控件添加到“功能区”选项卡。

下一个决定是,何时应填充列表?

  • 如果列表应该是静态的,请转到“属性”中的Buttons条目,然后单击它以获取可以在其中键入静态列表的界面。
  • 为了在创建功能区(加载VSTO项目)时填充列表,请在功能区的Load事件中编写代码
  • 要在VSTO项目的会话期间动态更改列表,请运行基本上相同的代码,但是在需要时(例如,单击一个按钮)

用于填充列表的示例代码。为每个列表条目创建一个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要为控件的默认事件生成代码存根,请双击该控件。为了生成其他事件的代码存根,请在“属性”窗格中切换到“事件”页面,然后双击。

© www.soinside.com 2019 - 2024. All rights reserved.