现在的位置: 首页 > 综合 > 正文

.net WinForm用户控件开发–(4)用户控件的基本属性设置

2013年10月08日 ⁄ 综合 ⁄ 共 1848字 ⁄ 字号 评论关闭

      在前几节中,我们演示了怎样进行用户控件开发,大家可能对用户控件中的一些属性的基本设置还存在疑惑,这节我们共同学习下用户控件的基本属性设置。

所谓基本属性设置,就是我们常常看到控件在属性设计器中可以对属性进行设置,有些属性在设计中具有默认值,有些在属性设计器中会弹出一个编辑器,供用户选择值。

 这节内容

  1.简单数据类型的属性设置

  2.复杂数据类型的属性设置

 

   1.简单数据类型的属性设置

     简单数据类型,就是.NET中常见的类型,例如字符串,整型,浮动型,这些基本数据类型。

    我们看下这些基本属性

     Browsable:指示该属性是否可以在属性设计器中显示,如果TRUE则显示,FALSE则不显示

     Category:表示属性的分类

     Description:表示属性的描述信息

     DefaultValue:表示属性的默认值。

     下面我们定义了一个用户控件,并自定义了一个属性SecondText,代码如下:

   

public partial class UCLabel : UserControl
    {
        public UCLabel()
        {
            InitializeComponent();
        }

        private string _sText="Helloworld";//初始值
        /// <summary>
        /// Browsable表示该属性是否显示在设计器中,TRUE为显示
        /// </summary>
        /// Description表示对属性的描述信息
        /// Category表示该属性在属性设计器中的分类
        [Browsable(true)]
        [Category("文本")]
        [Description("第二文本")]
        [DefaultValue("新浪微博")]//默认值
        public string SecondText
        {
            get
            {
                return _sText;
            }
            set
            {
                _sText = value;
            }
        }


       
    }

           

     从上面的图片中,我们可以看到各个属性在属性设计器中对应的项。

     在这里有一点要说明,我们把SecondText的初始值设为HelloWorld,  把它的默认值设为新浪微博, 我们说下初始值和默认值的区别

        1.初始值是属性定义时候赋的值,当把用户控件拖到窗体上后,默认情况下显示的初始值。

        2.一个属性的默认值是非加粗显示,其他值都是加粗显示的。

        3.如果想恢复某个属性的默认值,只需要右键单击该属性,选择重置,就可以恢复属性的默认值。

          

 

 2.  复杂属性的基本设置

      复杂类型主要是指引用类型,例如我们自定义的类,或者系统原有的类。复杂属性的设置主要是默认值的设置。

     复杂属性的默认值设置不能再使用DefaultValue属性,需要使用Reset方法.

     如果想判断当前属性是否使用的是默认值,可以使用ShouldSerialize属性名来判断,当然,这两个方法都需要我们自己来实现。

    如下代码定义了一个颜色复杂属性

     

 //定义属性的初始值为红色
        private Color _sColor = Color.Red;

        [Category("颜色")]
        [Description("第二颜色")]
        public Color SecondColor
        {
            get
            {
                return _sColor;
            }
            set
            {
                _sColor = value;
            }
        }

        /// <summary>
        /// 用于判断当前属性是否在使用默认值
        /// </summary>
        /// <returns></returns>
        public bool ShouldSerializeSecondColor()
        {
            return _sColor != Color.Blue;
        }

        /// <summary>
        /// 用于设置属性的默认值为蓝色
        /// </summary>
        public void ResetSecondColor()
        { 
            _sColor = Color.Blue;
        }

        这样我们在属性设计器中就可以通过重置命令,设置默认颜色为蓝色。

       

 

    这节我们就先写到这里,如果还对属性有更深入的了解,可以参照MSDN

    

http://msdn.microsoft.com/zh-cn/library/53b8022e(v=vs.80).aspx

    http://msdn.microsoft.com/zh-cn/library/ms171724(v=vs.90).aspx

  

  

 

 

 

抱歉!评论已关闭.