用户控件的ComboBox.ObjectCollection属性?

时间:2012-03-28 01:46:15

标签: c# winforms properties user-controls combobox

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

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并且不允许我更改它...

2 个答案:

答案 0 :(得分:2)

在我阅读它时,您只需要在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。 (好吧,几乎没有)。

答案 1 :(得分:0)

    public System.Windows.Forms.ComboBox.ObjectCollection Item
    {
        set {
            for (byte i = 0; i < value.Count; i++)
                comboBox1.Items.Add(value[i].ToString());
        }
        get { return comboBox1.Items; }
    }

试试这个