【问题标题】:ComboBox.ObjectCollection property for a user control?用户控件的 ComboBox.ObjectCollection 属性?
【发布时间】:2012-04-11 14:35:48
【问题描述】:

我有一个带有组合框的用户控件,因此我可以将其文本作为属性进行编辑,我有以下代码:

public ComboBox.ObjectCollection _OptionList {
    get {
        return OptionChoice.Items;
    }
    set {
        for (int i = 0; i < value.Count; i++)
        {
            OptionChoice.Items.Add(value[i]);
        }
    }
}

是否可以将组合框的这个属性作为用户控件的属性来访问?如果是这样,我做错了什么?它构建并运行,但是当我单击 VS 中的属性并添加一个项目时,新项目是 System.Object 并且不会让我更改它...

【问题讨论】:

    标签: c# winforms properties user-controls combobox


    【解决方案1】:

    当我读到它时,您只需要在您的 UserControl 上使用相同的 Items 集合 - 作为 UserControl 上特定组合框的传递。

    所以告诉设计师你期望它是什么类型的列表:

    [Editor("System.Windows.Forms.Design.ListControlStringCollectionEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
        typeof(UITypeEditor))]
    public ComboBox.ObjectCollection Items
    {
        get{ return this.comboBox1.Items; }
    }
    

    你永远不会想要一个集合属性的 setter。 (嗯,几乎从来没有)。

    【讨论】:

    • 但是我需要能够更改组合框中的项目,这可以让我更改吗?
    • 是的。它与原始 ComboBox 一样完全工作,因为这几乎是完全相同的代码。试一试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多