在VS2008中创建自定义控件(十)添加枚举型属性

来源:互联网 发布:网络扫描工具的作用 编辑:程序博客网 时间:2024/05/17 18:49

 


 

本文目的:

在自定义控件中添加一个枚举型的属性

 


 

 

    什么是枚举型的属性?看一下下图就明白了。

    上图是一个TextBox服务器控件的BorderStyle属性。在属性对话框中,该属性值是通过下拉列表框的形式出现的,我们只能选择下拉列表框中的选项,不能自己输入内容——这就是枚举型属性的特点。

 

    接着上文《在VS2008中创建自定义控件(九)添加属性》,我们现在要为唐诗添加一个类别,这个类别用于说明唐诗是五言绝句还是七言绝句。

    首先,还是打开“poetry.cs”文件。

 

    然后,我们定义一个枚举,这个枚举中存放的内容就是下拉列表框中的选项,也就是五言绝句,还是七言绝句,如以下代码所示:

[c-sharp] view plaincopy
  1. /// <summary>  
  2. /// 枚举类型,用于显示诗的分类的具体选项  
  3. /// </summary>  
  4. public enum PoetryTypes  
  5. {   
  6.     五言绝句,  
  7.     七言绝句  
  8. }  

 

    第三步,定义一个枚举类型的属性,如以下代码所示。

[c-sharp] view plaincopy
  1. private PoetryTypes _poetryTypes;  
  2. /// <summary>  
  3. /// 唐诗的分类  
  4. /// </summary>  
  5. [Category("Data")]              //放到“数据”分组中  
  6. [Browsable(true)]               //该项属性是否会显示在控件的“属性”窗口中  
  7. [Description("诗的分类")]       //属性的说明  
  8. public PoetryTypes PoetryType  
  9. {  
  10.     get  
  11.     {  
  12.         return _poetryTypes;  
  13.     }  
  14.     set  
  15.     {  
  16.         _poetryTypes = value;  
  17.     }  
  18. }  

 

    第四步,添加自定义控件的呈现方式,也就是重写RenderContents()方法,如以下代码所示。

[c-sharp] view plaincopy
  1. /// <summary>  
  2. /// 呈现控件  
  3. /// </summary>  
  4. /// <param name="output"></param>  
  5. protected override void RenderContents(HtmlTextWriter output)  
  6. {  
  7.     string OutText = "";  
  8.     if (!String.IsNullOrEmpty(Title))  
  9.     {  
  10.         OutText += "<p style="/" mce_style="/""text-align:center; font-size:12pt; font-weight:bold;/">" + Title + "(" + PoetryType + ")</p>";  
  11.     }  
  12.     OutText += "<p style="/" mce_style="/""text-align:center; font-size:10pt;/">" + Text + "</p>";  
  13.     output.Write(OutText);  
  14. }  

 

    经过以上四个步骤,自定义控件的一个枚举型属性就添加完毕了。我们可以在网页中添加这个自定义控件,此时,在属性窗口我们可以看到Type属性如下图所示。

 

    从上图中我们可以看到,PoetryType属性值只能是我们定义的两个枚举选项。在aspx文件的源代码中,我们也可以看到枚举型属性的可选范围,如下图所示。

 

    在上图中,如果我们不选择可选项,而是自己输入的内容,在编译的时候,VS将会提示错误信息,如下图所示。

 

    最后的运行结果如下图所示。

 

===================================================================

原创不容易,转载请注明出处:http://hi.csdn.net/smallfools

相关链接:

  1. 在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目
  2. 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中
  3. 在VS2008中创建自定义控件(三)在网页中添加自定义控件
  4. 在VS2008中创建自定义控件(四)为自定义控件添加默认值
  5. 在VS2008中创建自定义控件(五)修改tagprefix
  6. 在VS2008中创建自定义控件(六)创建完全自定义控件
  7. 在VS2008中创建自定义控件(七)自定义控件的中常用到的特性
  8. 在VS2008中创建自定义控件(八)输出HTML代码
  9. 在VS2008中创建自定义控件(九)添加属性
  10. 在VS2008中创建自定义控件(十)添加枚举型属性
  11. 在VS2008中创建自定义控件(十一)添加在属性窗口中可折叠的属性(一)
  12. 在VS2008中创建自定义控件(十二)添加在属性窗口中可折叠的属性(二)
  13. 在VS2008中创建自定义控件(十三)添加内镶属性
  14. 在VS2008中创建自定义控件(十四)内镶属性与内联属性的优先级
  15. 在VS2008中创建自定义控件(十五)创建控件时出错(未能对属性XXX设置XXX)的解决方法

===================================================================

原创粉丝点击