在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中

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

本文目的:

1、创建一个自定义控件。

2、将自定义控件添加到工具箱中,以便调用。

本文的最终结果如下图所示。

 


 

 

    接上文《在VS2008中创建自定义控件(一)创建网站项目和自定义控件项目》,下图是添加了自定义控件项目后“解决方案资源管理器”中的结果。

 

 

    从上图中我们可以看出,在创建项目时,VS已经为我们创建了一个名为“ServerControl1”的自定义控件。这个控件我们现在不去管它,我们现在要自己添加一个自定义控件,这个自定义控件和文本框是一个样,只不过要添加该控件时,文本框架中会显示默认的文字(不用我们每次都设这个默认值)。添加方法如下所示:

 

    1、右击“YundaoControls”项目,在弹出的快捷键菜单中选择“添加”-->“新项”,在弹出的对话框中选择“ASP.NET服务器控件”,并输入名称。如下图所示。

 

 

    2、VS会自动在yundaoTextBox.cs中文件添加内容,如下所示。

[c-sharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Linq;  
  5. using System.Text;  
  6. using System.Web;  
  7. using System.Web.UI;  
  8. using System.Web.UI.WebControls;  
  9. namespace YundaoControls  
  10. {  
  11.     [DefaultProperty("Text")]  
  12.     [ToolboxData("<{0}:yundaoTextBox runat=server></{0}:yundaoTextBox>")]  
  13.     public class yundaoTextBox : WebControl  
  14.     {  
  15.         [Bindable(true)]  
  16.         [Category("Appearance")]  
  17.         [DefaultValue("")]  
  18.         [Localizable(true)]  
  19.         public string Text  
  20.         {  
  21.             get  
  22.             {  
  23.                 String s = (String)ViewState["Text"];  
  24.                 return ((s == null) ? String.Empty : s);  
  25.             }  
  26.             set  
  27.             {  
  28.                 ViewState["Text"] = value;  
  29.             }  
  30.         }  
  31.         protected override void RenderContents(HtmlTextWriter output)  
  32.         {  
  33.             output.Write(Text);  
  34.         }  
  35.     }  
  36. }  
 

    以上代码这此就不过多地解释了,下面只说明需要修改的几个地方。

    a、因为我们的目的是添加一个自定义的文本框,所以,这个类应该承继TextBox类,因此,将“public class yundaoTextBox : WebControl”改为“public class yundaoTextBox : TextBox”。

    b、由于TextBox类中包括了Text属性,所以,要将yundaoTextBox的Text属性重写。将“public string Text”改为“public override string Text”。

    修改完后的代码如下所示(我加了些注释):

[c-sharp] view plaincopy
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.ComponentModel;  
  4. using System.Linq;  
  5. using System.Text;  
  6. using System.Web;  
  7. using System.Web.UI;  
  8. using System.Web.UI.WebControls;  
  9. namespace YundaoControls  
  10. {  
  11.     [DefaultProperty("Text")]  
  12.     [ToolboxData("<{0}:yundaoTextBox runat=server></{0}:yundaoTextBox>")]  
  13.     public class yundaoTextBox : TextBox  
  14.     {  
  15.         /// <summary>  
  16.         /// 实现Text属性  
  17.         /// </summary>  
  18.         [Bindable(true)]  
  19.         [Category("Appearance")]  
  20.         [DefaultValue("")]  
  21.         [Localizable(true)]  
  22.         public override string Text  
  23.         {  
  24.             get  
  25.             {  
  26.                 String s = (String)ViewState["Text"];  
  27.                 return ((s == null) ? String.Empty : s);  
  28.             }  
  29.             set  
  30.             {  
  31.                 ViewState["Text"] = value;  
  32.             }  
  33.         }  
  34.         /// <summary>  
  35.         /// 重写RenderContents方法  
  36.         /// </summary>  
  37.         /// <param name="output"></param>  
  38.         protected override void RenderContents(HtmlTextWriter output)  
  39.         {  
  40.             //输出流  
  41.             output.Write(Text);  
  42.         }  
  43.     }  
  44. }  
 

 

   3、生成解决方案。

 

    如果解决方案生成后没有什么错误的话,就可以将自定控件添加到工具箱中了。添加方法如下所示:

    1、右击网站项目(第一个项目),在弹出的快捷菜单中选择“添加引用”,如下图所示。

 

   2、在弹出的对话框架中选择“项目”选项卡,如下图所示,VS已经自动将YundaoControls的DLL添加进出,此时,可以直接单击“确定”按钮。

 

    3、在网站项目里(第一个项目)打开一个网页文件,并打开其“设计”视图(一定要打开“设计”视图哟),再点开工具箱,此时可以看到工具箱里多了一个“YundaoControls组件”选项卡,如下图所示,这个选项卡下有两个控件。这两个组件一个是前面VS生成的ServerControl1自定义控件,另一个就是前面我们添加的“yundaoTextBox”自定义控件。

 

 

 

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

原创不容易,转载请注明出处: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)的解决方法

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

原创粉丝点击