我有一个带有组合框的用户控件,因此我可以将其文本编辑为属性,我有以下代码:
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并且不允许我更改它...
答案 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; }
}
试试这个