标题:自已实现服务器控件之Label控件
声明:本帖只是一个测试Demo,所以,不会写得太规范,也不会考虑到安全性.以方便为 主.所以,用得到的朋友在项目中使用的时候,还希望对其进行改进.
环境
开发工具: VS.net 2003
数据库: Sql Server 2000
作者:文刀无尽
日期:2006-02-20
读者要求:有一定的编程经验.
注:我最先写的Label控件是不能在设计时用鼠标来调整大小的,见
(原创)自已实现服务器控件 之 简单的Label控件
关于这个设计时实现鼠标拖动控制控件大小
的问题,我在网上找了很久资料都没找到,也问了
很多人,依然没有答案,一天灵光一动,试了一下
下面的代码,问题OK.但是现在我还是不明白原理
是什么.这里希望有经验的朋友说明一下.
using System;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.ComponentModel.Design;
![](/Images/OutliningIndicators/None.gif)
namespace Skyendless.MyControls
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
{
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:Label runat=server></{0}:Label>")]
public class Label : System.Web.UI.WebControls.WebControl
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
private string text;
[Bindable(true),
Category("Appearance"),
DefaultValue("")]
public string Text
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
get
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return text;
}
![](/Images/OutliningIndicators/InBlock.gif)
set
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
text = value;
}
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//
//将需要呈现的 HTML 属性和样式添加到指定
//的输出流中
//
AddAttributesToRender(output);
![](/Images/OutliningIndicators/InBlock.gif)
output.RenderBeginTag(System.Web.UI.HtmlTextWriterTag.Div);//添加一个Div控件
output.Write(Text); //值
output.RenderEndTag(); //控件结束
}
![](/Images/OutliningIndicators/InBlock.gif)
}
}
![](/Images/OutliningIndicators/None.gif)