用户控制属性c#

时间:2015-07-31 04:20:34

标签: c# winforms custom-controls

我想创建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中添加了项目,但我无法在设计时选择它。

编辑:我想创建一个用户控件属性,如下所示: enter image description here

1 个答案:

答案 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属性就会隐藏属性。