Depois de um dia em busca de um jeito de tratar eventos via delegates em user controls, resolvi escrever este simples artigo a fim de expor uma forma fácil que encontrei de solucionar este problema.

Pra começar vou expor o cenário do problema, e depois a solução aplicada.

O artigo encontra-se no arquivo em anexo "tutorial delegates.doc" com imagens explicativas. o arquivo "delegates.zip" contém a solução com os exemplos.

Este código foi desenvolvido utilizando C# 1.1 e VS.Net 2003.


            //#####################
//arquivo.aspx
//#####################




 
  
 
 
  
   

   Aqui vai aparecer a mensagem
  
 

//#####################
//arquivo.aspx.cs
//#####################
using System;
using System.Web.UI;
namespace TesteUC
{
 public class arquivo : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.Label lblResposta;
  //preciso declarar a variável ucMenu para ter acesso
  //ao web user control Menu
  protected ucMenu ucMenu;
  #region ""
  private void Page_Load(object sender, System.EventArgs e){}
  override protected void OnInit(EventArgs e)
  {
   InitializeComponent();
   base.OnInit(e);
  }
  #endregion
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);
   //criando um handler de evento
   ucMenu.clicou+=new TesteUC.ucMenu.botao1_Handler(ucMenu_clicou);
  }
  private void ucMenu_clicou(string mensagem)
  {
   this.lblResposta.Text = mensagem;
  }

  
 }
}

//#####################
//ucMenu.ascx
//#####################