自己定义的控件属性:
[Browsable(true),Bindable(true),Category("数据"),DefaultValue(""),Localizable(true),
        Description("Items列表项集合"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content),//指定集合属性可序列化
        Editor(typeof(DropTextEditor), typeof(UITypeEditor)),
       PersistenceMode(PersistenceMode.InnerDefaultProperty)]//指定属性在服务器控件中保持为内部文本。还指示将该属性定义为元素的默认属性。只能指定一个属性为默认属性
        public DropList Items
        {
            get
            {
                if (ViewState["_items"] == null)
                {
                    ViewState["_items"] = new DropList();
                }
                return (DropList)ViewState["_items"];
            }
            set { ViewState["_items"] = value; }
        }
//Items属性编辑器相关类
#region Items属性编辑器

#region DropText属性编辑器
    /// <summary>
    /// 可编辑下拉列表框的Items属性编辑器
    /// 提供一个用户界面,该界面可以在设计时编辑大多数类型(此处为DropItem)的集合。
    /// </summary>
    public class DropTextEditor : System.ComponentModel.Design.CollectionEditor
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="type"></param>
        public DropTextEditor(Type type)
            : base(type)
        {
        }

/// <summary>
        /// 指示是否可一次选择多个集合项
        /// </summary>
        /// <returns>如果可以同时选择多个集合成员,则为 true;否则,为 false。此处默认情况返回 false</returns>
        protected override bool CanSelectMultipleInstances()
        {
            return false;
        }
        /// <summary>
        /// 获取此集合需包含的数据类型
        /// </summary>
        /// <returns>类型:System.Type(此 Type 指示集合需包含的数据类型。)</returns>
        protected override Type CreateCollectionItemType()
        {
            return typeof(DropItem);
        }
    }
    #endregion

#region DropItem类
    /// <summary>
    /// 可编辑下拉列表框的Items属性类
    /// </summary>
    [TypeConverter(typeof(ExpandableObjectConverter))]
    [Serializable]//将DropItem类指示为可以序列化
    public class DropItem
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        public DropItem()
        {
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="str_Text">文本内容</param>
        /// <param name="str_Value">文本值</param>
        public DropItem(string str_Text,string str_Value)
        {
            Text = str_Text;
            Value = str_Value;
        }
        private string text;
        private string _value;
        /// <summary>
        /// 文本
        /// </summary>
        public string Text
        {
            get { return text; }
            set { text = value; if (string.IsNullOrEmpty(Value)) { Value = value; } }
        }
        /// <summary>
        /// 文本所对应值
        /// </summary>
        public string Value
        {
            get { return _value; }
            set { _value = value; if (string.IsNullOrEmpty(Text)) { Text = value; } }
        }
    }
    #endregion

#region DropList类,继承自ArrayList
    /// <summary>
    /// 下拉列表框Items属性的基类继承自System.Collections.ArrayList
    /// </summary>
    [Serializable]
    public class DropList : ArrayList
    {
        /// <summary>
        /// 将DropItem添加到DropList结尾处
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public int Add(DropItem value)
        {
            return base.Add(value);
        }
    }
    #endregion

#endregion

最新文章

  1. jQuery基础--样式篇(5)
  2. ALV要特别小心的一些地方
  3. Ajax status状态详解
  4. [禅悟人生]&quot;执著&quot;是自缚的茧
  5. SQL技巧之分类汇总
  6. C#多线程解决界面卡死问题
  7. AndroidGradle --多渠道打包配置(转发)
  8. Android网络编程要学的东西与Http协议学习
  9. 剑指OFFER——正则表达式匹配
  10. SpringMVC的@RequestParam的解释
  11. ECMA262学习笔记(一)
  12. go标准库的学习-time
  13. powermock+mockito+testng 单元测试pom文件
  14. mongodb备份与还原
  15. DOM父节点、子节点例子
  16. 阅读笔记:A Few useful things to Know About machine Learning
  17. The same month as the adidas NMD Singapore is releasing
  18. Json转java对象和List集合
  19. vscode编辑器配置C语言编译运行环境
  20. vb.net winform exe 接参数

热门文章

  1. Mongodb创建数据库
  2. sql 多行转换为一行
  3. PHP 捕捉错误,记录到日志
  4. Bootstrap学习笔记(二)
  5. Python学习之路二
  6. shell脚本连接、读写、操作mysql数据库实例
  7. JavaScript中作用域和作用域链解析
  8. 浅谈HTTP中Get与Post的区别(转)
  9. sqlserver 存储过程分页管理
  10. 常用HTML标签元素结合及简介