我想将有特殊功能的c#代码写成自己的控件 ,请问怎样实现啊?是自定义控件吗?求高手,悬赏50分

怎样将功能代码写成控件啊?帮帮忙!... 怎样将功能代码写成控件啊?帮帮忙! 展开
 我来答
huangpeng0419
2012-05-19 · TA获得超过357个赞
知道小有建树答主
回答量:569
采纳率:100%
帮助的人:300万
展开全部
例子:

如 新建一个类库项目 名字为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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winmsing
2012-05-19 · TA获得超过612个赞
知道小有建树答主
回答量:414
采纳率:0%
帮助的人:430万
展开全部
功能代码一般是写成类.封装起来,.然后需要的时候实例化就行了..比如说你的
特殊功能代码,只是一个或多个方法..或者是为完成某一功能的代码段,这种写成类里面就行了..
如果你的代码有些窗口控件..或者他干脆就是一个独立的程序..这种的你可以写成DLL,或者自定义控件都可以..
事实上,自定义控件,也是类的一种表现形式/.//
追问
感谢啊,怎样将它写成DLL文件啊?谢谢!
追答
项目菜单----里面有个"你的项目名字"属性的菜单-----弹出个对话框---左边点应用程序---右边有个输出类型---选择类库就行了..运行一次,这时候你会发现程序就没法运行了,---再到调试文件下你会发现你的程序变成了一个DLL文件,...
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9066726
2012-05-19 · TA获得超过559个赞
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:91万
展开全部
单独建项目放这个特殊类就能生成了。
而且高版本VS是有新建自定义控件的功能的,用独立的命名空间
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式