自定义web控件
来源:互联网 发布:smb协议如何传输数据 编辑:程序博客网 时间:2024/06/02 04:31
一些属性
[Bindable(true),
Category("Appearance"),
DefaultValue(""),
Description("The e-mail address.")]
可以通过内部控件的事件调用激活自定义事件
//添加控件属性 public string pp { get; set; } //添加事件,声明一个委托的事件,一个标准,转接到系统的event处理 public delegate void ppaction(object sender, EventArgs e); public event ppaction ppshow; public void ppac(object sender, EventArgs e) { if (ppshow != null) { ppshow(sender, e); } }以下为转载内容
以下是一个登陆框的代码,包括:用户名输入TextBox、密码输入TextBox、提交Button、重置Button以及承载以上四项的Panel。控件类名为LoginCtrl。(例程使用C#)using System;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;using System.Drawing;namespace TestLib{[DefaultProperty("BackColor"), ToolboxData("<{0}:LoginCtrl runat=server></{0}:LoginCtrl>")]public class LoginCtrl : System.Web.UI.WebControls.WebControl{private Color _fontColor = Color.Black;//声明字体颜色变量private Color _backColor = Color.White;//声明控件背景变量首先声明要在复合控件中使用的子控件。private Label lblUserName = new Label();//显示“用户名”的Label控件private Label lblPassWord = new Label();//显示“密码”的Label控件private TextBox txtUserName = new TextBox();//用户名输入的TextBox控件private TextBox txtPassWord = new TextBox();//密码输入的TextBox控件private Button submitButton = new Button();//提交Button控件private Button clearButton = new Button();//重置Button控件private System.Web.UI.WebControls.Panel pnlFrame = new System.Web.UI.WebControls.Panel();//承载其它控件的容器Panel控件当然要在符合控件中使用的事件一定要声明的,它们会出现在属性框的事件栏里。public event EventHandler SubmitOnClick;//声明自定义控件LoginCtrl的提交事件public event EventHandler ClearOnClick;//声明自定义控件LoginCtrl的重置事件public LoginCtrl() {刚刚声明的子控件和事件要在这里进行初始化处理。//初始化控件的属性this.lblUserName.Text = "用户名:";this.lblPassWord.Text = "密 码:";this.txtPassWord.TextMode = System.Web.UI.WebControls.TextBoxMode.Password;this.pnlFrame.Width = 240;this.pnlFrame.Height = 120;this.pnlFrame.BackColor = Color.Empty;//添加提交按钮点击事件submitButton.Text = "确定";submitButton.Click += new EventHandler(this.SubmitBtn_Click);//添加重置按钮点击事件clearButton.Text = "重置";clearButton.Click += new EventHandler(this.ClearBtn_Click);//将声明的各子控件添加到LoginCtrl中this.Controls.Add(this.submitButton);this.Controls.Add(this.clearButton);this.Controls.Add(this.txtUserName);this.Controls.Add(this.txtPassWord);this.Controls.Add(this.lblUserName);this.Controls.Add(this.lblPassWord);this.Controls.Add(this.pnlFrame);}根据自己的需要添加或重载符合控件的公共属性//字体颜色属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override Color ForeColor {get{return this._fontColor;}set{this._fontColor = value;}}//控件背景属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override Color BackColor {get{return this._backColor;}set{this._backColor = value;}}//用户名属性[Bindable(false), Category("Appearance"), DefaultValue("")] public string UserName{get{return this.txtUserName.Text;}set{this.txtUserName.Text = value;}}//密码属性[Bindable(false), Category("Appearance"), DefaultValue(""), Browsable(false)] public string PassWord{get{return this.txtPassWord.Text;}set{this.txtPassWord.Text = value;}}//控件宽度属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override Unit Width{get{return this.pnlFrame.Width;}set{this.pnlFrame.Width = value;}}//控件高度属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override Unit Height{get{return this.pnlFrame.Height;}set{this.pnlFrame.Height = value;}}//控件边框颜色属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override Color BorderColor{get{return this.pnlFrame.BorderColor;}set{this.pnlFrame.BorderColor = value;}}//控件边框样式属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override BorderStyle BorderStyle{get{return this.pnlFrame.BorderStyle;}set{this.pnlFrame.BorderStyle = value;}}//控件边框宽度属性[Bindable(false), Category("Appearance"), DefaultValue("")] public override Unit BorderWidth{get{return this.pnlFrame.BorderWidth;}set{this.pnlFrame.BorderWidth = value;}}下面要把控件输出出去,展示在页面上。/// <summary> /// 将此控件呈现给指定的输出参数。/// </summary>/// <param name="output"> 要写出到的 HTML 编写器 </param>protected override void Render(HtmlTextWriter output){this.pnlFrame.RenderBeginTag(output);//输出Panel控件//在Panel中绘制表格output.AddAttribute(HtmlTextWriterAttribute.Border,"0");output.AddAttribute(HtmlTextWriterAttribute.Cellpadding,"0");output.AddAttribute(HtmlTextWriterAttribute.Cellspacing,"0");output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Width,"100%");output.AddAttribute(System.Web.UI.HtmlTextWriterAttribute.Height,"100%");output.AddAttribute(HtmlTextWriterAttribute.Bgcolor,this._backColor.Name);output.RenderBeginTag(HtmlTextWriterTag.Table);output.RenderBeginTag(HtmlTextWriterTag.Tr);output.RenderBeginTag(HtmlTextWriterTag.Td);//在表格中添加Label控件this.lblUserName.ForeColor = this._fontColor;this.lblUserName.RenderControl(output);output.RenderEndTag();output.RenderBeginTag(HtmlTextWriterTag.Td);//在表格中添加TextBox控件this.txtUserName.RenderControl(output);output.RenderEndTag();output.RenderEndTag();output.RenderBeginTag(HtmlTextWriterTag.Tr);output.RenderBeginTag(HtmlTextWriterTag.Td);//在表格中添加Label控件this.lblPassWord.ForeColor = this._fontColor;this.lblPassWord.RenderControl(output);output.RenderEndTag();output.RenderBeginTag(HtmlTextWriterTag.Td);//在表格中添加TextBox控件this.txtPassWord.RenderControl(output);output.RenderEndTag();output.RenderEndTag();output.RenderBeginTag(HtmlTextWriterTag.Tr);output.AddAttribute(HtmlTextWriterAttribute.Align,"right");output.RenderBeginTag(HtmlTextWriterTag.Td);//在表格中添加Button控件this.submitButton.RenderControl(output);output.RenderEndTag();output.AddAttribute(HtmlTextWriterAttribute.Align,"center");output.RenderBeginTag(HtmlTextWriterTag.Td);//在表格中添加Button控件this.clearButton.RenderControl(output);output.RenderEndTag();output.RenderEndTag();output.RenderEndTag();this.pnlFrame.RenderEndTag(output);}当按钮点击时怎么做呢?这是个事件冒泡。//处理提交按钮点击事件private void SubmitBtn_Click(object sender, EventArgs e){EventArgs e1 = new EventArgs();if(this.SubmitOnClick!=null)this.SubmitOnClick(this.submitButton,e1);}//处理重置按钮点击事件private void ClearBtn_Click(object sender, EventArgs e){this.txtPassWord.Text = "";this.txtUserName.Text = "";EventArgs e1 = new EventArgs();if(this.ClearOnClick!=null)this.ClearOnClick(this.clearButton,e1);}}}
- Web自定义控件FlashLabel
- 创建 Web 自定义控件
- 创建Web自定义控件
- 开发Web自定义控件
- WEB自定义控件小记
- 创建web自定义控件
- 自定义web控件
- 自定义Web Tab控件
- CSS自定义WEB控件
- Web 用户控件与 Web 自定义控件
- 演练:创建 Web 自定义控件
- 学习自定义web控件编程
- 创建 Web 自定义控件1
- 自定义Web DataGrid 翻页控件
- Asp.net Web控件自定义
- 自定义Web上传控件设计
- 自定义Web上传控件设计
- 自定义Web控件写事件
- 问题啊问题
- 大话PHP之性能
- 一个Qt 网址
- 物联网落地了吗?
- Android简单的利用MediaRecorder进行录音
- 自定义web控件
- JavaScript获取HTML DOM节点元素的方法的总结
- 移动IPv6关键路由技术分析
- KLOC
- Android ADB linux命令集合
- WinCE控制面板添加应用程序
- ejb事务管理
- java连接 mssql的代码。
- LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义