我想创建UserControl
的列表属性,以便在设计时添加和选择项目。做这个的最好方式是什么?这是相关代码:
public partial class UserControl1 : UserControl
{
List<string> _item = new List<string>();
[Browsable(true)]
public List<string> item
{
set
{
_item = value;
}
get
{
return _item;
}
}
我在List中添加了项目,但我无法在设计时选择它。
答案 0 :(得分:3)
您需要告知设计师如何编辑该属性:
[Editor("System.Windows.Forms.Design.ListControlStringCollectionEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
[MergableProperty(false)]
public List<string> Items
{
get
{
...
Editor
属性指向包含设计者可以向最终用户呈现的编辑器的类型。
代码生成部分需要DesignerSerializationVisibility
属性,否则输入的项目不会以生成的InitializeComponent()
方法结束。
一旦选择了多个控件,MergableProperty
属性就会隐藏属性。