如何在 CustomTaskPane VSTO C# 的用户控件中公开列表框

How to Expose Listbox in UserControl in CustomTaskPane VSTO C#

我正在使用 C# VSTO 创建 Word 2010 的应用程序级加载项。我创建了一个用户控件,在其中放置了控件,然后使用该用户控件添加了一个自定义任务窗格:

UserControl myUserControl;
myUserControl = new PageElementsPane();
mytaskPane = this.CustomTaskPanes.Add
    (myUserControl, "Page Elements", doc.ActiveWindow);

到目前为止一切顺利。但是,用户控件包含一个列表框,在将自定义任务窗格添加到自定义任务窗格集合后我无法访问该列表框。

我尝试将列表框上的修饰符 属性 设置为 Public。我尝试将用户控件上的列表框公开为 Public 属性:

 public partial class PageElementsPane: UserControl
 {
    public ListBox ElementsPaneListBox
    {
        get { return lbxListbox; }
    }
 }

另外,我看了这个 SO post:

Working with ListBox elements in a user control

我希望我能适应它,但我的列表框 IntelliSense 没有 FindControl,而是提供 FindForm。有没有办法通过某种方式将自定义任务窗格解释为表单来访问用户控件中的列表框?非常感谢任何帮助。

看来我的 foreach(因此我的演员表)不正确(根据上面评论中 Eugene Astafiev 的问题)。我发现这个 SO Post 建议使用类型 Control 而不是 UserControl 进行循环。我这样做了,一切都很好。这是代码:

foreach (Control lbxControl in myUserControl.Controls)
{
    if (lbxControl is ListBox)
    {
        ((ListBox)lbxControl).SelectedIndex = 1;
    }
}