您的位置:首页 > 移动开发 > Objective-C

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

2006-09-23 22:12 399 查看
在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();


    }


}



每次需要注册方法时,就在刚才的剪切区注册就可以了,这样虽然麻烦一些,但是可以保证事件不会丢失。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  object
相关文章推荐