ASP.NET2.0自定义控件开发(4) ----给控件添加树状属性

    技术2022-05-11  41

    4.给控件添加树状属性 

     

    using  System; using  System.Web.UI; using  System.Web.UI.WebControls; using  System.ComponentModel; namespace  CustomControls {    /// <summary>    /// Summary description for LabelTextBox    /// </summary>    public class LabelTextBox : Control    {        private string _labelText="LabelText";        private string _textBoxText = "";        private SizeInfo _size;        [Browsable(true),         Description("获取和设置Label文本"),         DefaultValue("LabelText"),         Category("Appearance")        ]        public virtual string Title        {            get return _labelText; }            set { _labelText = value; }        }        [Browsable(true),         Description("获取和设置TextBox文本"),         DefaultValue(""),         Category("Appearance")        ]        public virtual string Text        {            get return _textBoxText; }            set { _textBoxText = value; }        }        [Browsable(true),         Description("获取和设置TextBox的显示方式"),         DefaultValue(""),         Category("Appearance")        ]        public virtual TextBoxMode TextMode        {            get            {                object _textMode = ViewState["TextMode"];                if (_textMode == null)                    return TextBoxMode.SingleLine;                else                    return (TextBoxMode)_textMode;            }            set            {                ViewState["TextMode"= value;            }        }        [Browsable(true),         Description("获取和设置控件的大小"),         DesignerSerializationVisibility(DesignerSerializationVisibility.Content),         NotifyParentProperty(true),         Category("Appearance")        ]        public virtual SizeInfo Size        {            get             {                if (_size == null)                    _size = new SizeInfo();                return _size;            }        }        protected override void Render(HtmlTextWriter writer)        {            Page.VerifyRenderingInServerForm(this);            if (TextMode == TextBoxMode.SingleLine)            {                writer.Write("<table style='width:180px;height:25px;border-width:0;'>");                writer.Write("<tr>");                writer.Write("<td><strong>" + _labelText + "</strong></td>");                writer.Write("<td><input name='TextBox' id='TextBox' type='text' /></td>");                writer.Write("</tr>");                writer.Write("</table>");            }            else if (TextMode == TextBoxMode.MultiLine)            {                writer.Write("<table style='width:180px;height:25px;border-width:0;'>");                writer.Write("<tr valign='top'>");                writer.Write("<td><strong>" + _labelText + "</strong></td>");                writer.Write("<td><textarea name='TextBox' id='TextBox' /></td>");                writer.Write("</tr>");                writer.Write("</table>");            }            else if (TextMode == TextBoxMode.Password)            {                writer.Write("<table style='width:180px;height:25px;border-width:0;'>");                writer.Write("<tr>");                writer.Write("<td><strong>" + _labelText + "</strong></td>");                writer.Write("<td><input name='TextBox' id='TextBox' type='password' /></td>");                writer.Write("</tr>");                writer.Write("</table>");            }            base.Render(writer);        }    }    [TypeConverter(typeof(ExpandableObjectConverter))]    public class SizeInfo    {        private int _width;        private int _height;        [NotifyParentProperty(true)]        public int Width        {            get return _width; }            set { _width = value; }        }        [NotifyParentProperty(true)]        public int Height        {            get return _height; }            set { _height = value; }        }    }}

    最新回复(0)