time 
设为首页】【收藏本站
当前位置: 主页 > 程序设计 > .net > Visual Studio > 在VS2008中创建自定义控件(二)创建自定义控件并将其添加到工具箱中

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

时间:2010-12-01 23:11 点击:1840次 字体:[ ]




本文目的:

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

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

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

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


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

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

 

 

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

 

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

 

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

 

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

  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”。

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

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

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

 

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

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

 

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

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

 



本文地址 : http://www.fengfly.com/plus/view-192985-1.html
标签: VS2008
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: