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

来源:互联网 发布:索取阿里云免费开通码 编辑:程序博客网 时间:2024/06/14 02:30

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

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

 这节内容

  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

  

  


 

 

 

原创粉丝点击