VS.NET中事件丢失的避免方法

    技术2022-05-11  76

    VS.NET中事件丢失的避免方法 在vs.net中经常遇到事件丢失的问题,可以这样避免一下 方法一: 把InitializeComponent中的注册事件,如下 private   void  InitializeComponent() {       this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);               this.Button1.Click += new System.EventHandler(this.Button1_Click);        this.Load += new System.EventHandler(this.Page_Load);} 剪切到override protected void OnInit(EventArgs e)里面,如下 override   protected   void  OnInit(EventArgs e) {    this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);               this.Button1.Click += new System.EventHandler(this.Button1_Click);               this.Load += new System.EventHandler(this.Page_Load);} 方法二: 把InitializeComponent中的注册事件,如下 private   void  InitializeComponent() {       this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);               this.Button1.Click += new System.EventHandler(this.Button1_Click);               this.Load += new System.EventHandler(this.Page_Load);} 剪切到你的自定义方法中 private   void  LoadEvent() {    this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.DropDownList1_SelectedIndexChanged);               this.Button1.Click += new System.EventHandler(this.Button1_Click);               this.Load += new System.EventHandler(this.Page_Load);} 然后在pageload中调用自定义方法就可以了,如 private   void  Page_Load( object  sender, System.EventArgs e) {    if(!Page.IsPostBack)    {        LoadEvent();    }} 每次需要注册方法时,就在刚才的剪切区注册就可以了,这样虽然麻烦一些,但是可以保证事件不会丢失。 摘自 : http://blog.csdn.net/jelink/archive/2006/09/23/1269751.aspx

    最新回复(0)