3个回答
展开全部
例子:
如 新建一个类库项目 名字为MyControls
自定义一个控件 (即类)为TextBox
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Web.UI;
namespace MyControls
{
public class TextBox : WebControl, IPostBackDataHandler
{
public TextBox() { }
public string Text
{
get { return ViewState["Text"] + ""; }
set { ViewState["Text"] = value; }
}
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Input; }
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID);
writer.AddAttribute(HtmlTextWriterAttribute.Value, this.Text);
base.AddAttributesToRender(writer);
}
#region IPostBackDataHandler 成员
public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
{
if (postCollection[postDataKey] == null) return false;
Text = postCollection[postDataKey];
return true;
}
public void RaisePostDataChangedEvent()
{
}
#endregion
}
}
使用 :
在页面上首先声明
<%@ Register TagPrefix="my" Assembly="MyControls" Namespace="MyControls" %>
后使用
<my:TextBox ID="myTextBox" runat="server" Text="hello world"/>
ps : 项目需引用System.Web
如 新建一个类库项目 名字为MyControls
自定义一个控件 (即类)为TextBox
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Web.UI;
namespace MyControls
{
public class TextBox : WebControl, IPostBackDataHandler
{
public TextBox() { }
public string Text
{
get { return ViewState["Text"] + ""; }
set { ViewState["Text"] = value; }
}
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.Input; }
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
writer.AddAttribute(HtmlTextWriterAttribute.Name, this.UniqueID);
writer.AddAttribute(HtmlTextWriterAttribute.Value, this.Text);
base.AddAttributesToRender(writer);
}
#region IPostBackDataHandler 成员
public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
{
if (postCollection[postDataKey] == null) return false;
Text = postCollection[postDataKey];
return true;
}
public void RaisePostDataChangedEvent()
{
}
#endregion
}
}
使用 :
在页面上首先声明
<%@ Register TagPrefix="my" Assembly="MyControls" Namespace="MyControls" %>
后使用
<my:TextBox ID="myTextBox" runat="server" Text="hello world"/>
ps : 项目需引用System.Web
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
功能代码一般是写成类.封装起来,.然后需要的时候实例化就行了..比如说你的
特殊功能代码,只是一个或多个方法..或者是为完成某一功能的代码段,这种写成类里面就行了..
如果你的代码有些窗口控件..或者他干脆就是一个独立的程序..这种的你可以写成DLL,或者自定义控件都可以..
事实上,自定义控件,也是类的一种表现形式/.//
特殊功能代码,只是一个或多个方法..或者是为完成某一功能的代码段,这种写成类里面就行了..
如果你的代码有些窗口控件..或者他干脆就是一个独立的程序..这种的你可以写成DLL,或者自定义控件都可以..
事实上,自定义控件,也是类的一种表现形式/.//
追问
感谢啊,怎样将它写成DLL文件啊?谢谢!
追答
项目菜单----里面有个"你的项目名字"属性的菜单-----弹出个对话框---左边点应用程序---右边有个输出类型---选择类库就行了..运行一次,这时候你会发现程序就没法运行了,---再到调试文件下你会发现你的程序变成了一个DLL文件,...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单独建项目放这个特殊类就能生成了。
而且高版本VS是有新建自定义控件的功能的,用独立的命名空间
而且高版本VS是有新建自定义控件的功能的,用独立的命名空间
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询