在asp.net中为Web用户控件添加属性和事件(2) </TR> <TR> <TD align="center" height="20"><FONT face="宋体"> <asp:Button id="ButtonLogIn" Width="50px" Text="登录" runat="server"></asp:Button> <asp:Button id="ButtonLogOut" Width="49px" Text="注销" runat="server"></asp:Button></FONT></TD> </TR></TABLE>我们简单简单的放了两个Label,两个TextBox,两个Button以及一个Html表。接下去就是为LogInOutControl.ascx.cs文件添加代码了。首先定义一个delegate,其中LogInOutEventArgs类是从EventArgs类继承,public delegate void LogInOutClickHandler(object sender,LogInOutEventArgs e);我觉得把这个delegate放在LogInOutControl类外面更为合适。接下去为控件声明了LogInOutClick事件,如下:public event LogInOutClickHandler LogInOutClick;另外为了更好的使用属性,加了Language枚举,private Language language;当然外部通过public Language Lg {get;set;}属性来访问。目的就是改变或者获取当前控件的显示。接下去就是定义控件事件触发函数OnLogInOutClick,由按钮单击事件处理函数来完成对用户控件事件的触发。完整代码如下:namespace ZZ{ using System; using System.Data; using System.Drawing; using System.Web; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
// 定义代理 public delegate void LogInOutClickHandler(object sender,LogInOutEventArgs e); public class LogInOutControl : System.Web.UI.UserControl { protected System.Web.UI.WebControls.Button ButtonLogIn; protected System.Web.UI.WebControls.TextBox TextBoxUserName; protected System.Web.UI.WebControls.TextBox TextBoxPassword; protected System.Web.UI.WebControls.Button ButtonLogOut; protected System.Web.UI.WebControls.Label LabelUser; protected System.Web.UI.WebControls.Label LabelPassword; public event LogInOutClickHandler LogInOutClick; private Language language; //方法 public void ChangeLanguage(Language language) { this.Lg = language; } //属性 public Language Lg