try
private void bt_cShopMaster_Click(object sender, System.EventArgs e)
{
...
bt_cShopMaster.Click -= new System.EventHandler( this.bt_cShopMaster_Click);
bt_cShopMaster.Click += new System.EventHandler( this.bt_cShopMaster_Click_2 );
}private void bt_cShopMaster_Click_2(object sender, System.EventArgs e)
{
...
bt_cShopMaster.Click -= new System.EventHandler( this.bt_cShopMaster_Click_2);
bt_cShopMaster.Click += new System.EventHandler( this.bt_cShopMaster_Click );
}

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    Session["a"]="1";
    }#region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: この呼び出しは、ASP.NET Web フォーム デザイナで必要です。
    //
    if (null!=Session["a"])
    {
    InitializeComponent(Session["a"].ToString());
    }
    else
    {
    InitializeComponent("1");
    }
    base.OnInit(e);
    }

    /// <summary>
    /// Designer サポートに必要なメソッドです。コード エディタで
    /// このメソッドのコンテンツを変更しないでください。
    /// </summary>
    private void InitializeComponent(string a)
    {    
    if (a=="1")
    {
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load);
    }
    else
    {
    this.Button1.Click += new System.EventHandler(this.b);
    this.Load += new System.EventHandler(this.Page_Load);
    }}
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    Session["a"]="2";
    Response.Write("1");
    } private void b(object sender, System.EventArgs e)
    {
    Session["a"]="1";
    Response.Write("2");
    }
      

  2.   

    一楼的代码我没有测试成果,上面代码通过测试修改 #region Web Form Designer generated code
    这样在页面初始化的过程中根据session值确定控件的时间委托
      

  3.   

    可以的,我以前写过一个类似的方法,不过是textchanged,本质就是添加和取消代理,没有什么名堂.