控件的事件丢失

在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();
    }

}

每次需要注册方法时,就在刚才的剪切区注册就可以了,这样虽然麻烦一些,但是可以保证事件不会丢失。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值