参加工作5个月了,来到一家小公司,.net 开发就我一个人,有几只老鸟带我,但不是我公司的,几个礼拜才来一次。来到公司做的第一个项目是web项目,里面有很多的重复代码,后来公司也来了一个实习生,说是来接手我的那个项目,而派我去做winform开发,那人一来,看到页面代码都是千篇一律,你这人也太水了吧,垃圾代码这么多,被人鄙视了,人嘛,总是要别人刺痛一两次才会往前走,谈恋爱也一样,伤过了,才醒了。
我的最终目的是完成DropDownCheckList这个控件,DropDwonList只参单选,而此控件可以多选的效果,这个效果相信网上的例子一定很多,虽然自己写代码的时代已经过去了,但我还是愿意多写点代码,多学点东西。此文章,记录了我一步步走过来的点点滴滴。
1.新建类库,命名为XYB.Controls,XYB 为我的真实的姓名的缩写,在此类库中添加一个类命名为TextEdit,再新建一个Web应用程序,命名为XYB.UI,在XYB.UI 中添加一个页面,命名为TextEditUI.aspx
2.导入命名空间
using System; using System.Collections.Generic; using System.Text; using System.Web; using System.Web.UI; using System.ComponentModel;//包含组件开发所必须含有的(属性)Attribute;
using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
3.继承
既然是控件开发,又是Web控件,当然要继承WebControl类,此类的命名空间是System.Web.UI.WebControls,WebControl继承了Control。
我们这里直接TextBox控件,TextBox继承了WebControl,拥有了TextBox所有的特性
using System; using System.Text; using System.Web.UI; using System.ComponentModel;//包含组件开发所必须含有的(属性)Attribute; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.Collections.Generic; namespace XYB.Controls { public class TextEdit:TextBox { } }
重新生成一下,在工具栏中就会有一个TextEdit的控件,如果没有,按照我以下的步骤,将控件加进来
1.在工具栏下面找个空白的地方点击右键-->添加选项卡,命名为XYB.Controls组件,名字随便取,再在刚新建好的XYB.Controls组件选项组中找个空白的位置点击右键-->选择项-->浏览,找到XYB.Controls.dll类库,将其添加进来,于是在工具栏中就多了一个TextEdit控件了
3.至此,最简单的自定义控件就完成了,将其拖到页面中去,在浏览器中浏览,其实此控件只是TextBox的一个替身
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TextEditUI.aspx.cs" Inherits="XYB.UI.TextEditUI" %> <%@ Register Assembly="XYB.Controls" Namespace="XYB.Controls" TagPrefix="cc1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <cc1:TextEdit ID="TextEdit1" runat="server"></cc1:TextEdit> </form> </body> </html>