(原创)自已实现服务器控件系列 之 设计时可用鼠标拖动大小的Label控件

标题:自已实现服务器控件之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;

namespace Skyendless.MyControls
{
    
/// <summary>
    
/// WebCustomControl1 的摘要说明。
    
/// </summary>

    [DefaultProperty("Text"), 
        ToolboxData(
"<{0}:Label runat=server></{0}:Label>")]
    
public class Label : System.Web.UI.WebControls.WebControl
    
{
        
private string text;
    
        [Bindable(
true), 
            Category(
"Appearance"), 
            DefaultValue(
"")] 
        
public string Text 
        
{
            
get
            
{
                
return text;
            }


            
set
            
{
                text 
= value;
            }

        }


        
/// <summary> 
        
/// 将此控件呈现给指定的输出参数。
        
/// </summary>
        
/// <param name="output"> 要写出到的 HTML 编写器 </param>

        protected override void Render(HtmlTextWriter output)
        
{
            
//
            
//将需要呈现的 HTML 属性和样式添加到指定
            
//的输出流中
            
//
            AddAttributesToRender(output); 

            output.RenderBeginTag(System.Web.UI.HtmlTextWriterTag.Div);
//添加一个Div控件
            output.Write(Text);     //
            output.RenderEndTag(); //控件结束
        }


    }

}



 

posted @ 2006-02-20 23:53  文刀无尽  阅读(552)  评论(0编辑  收藏  举报