none
Capturar no form qualquer click na UserControl RRS feed

  • Pergunta

  • Bom dia pessoal,

     

    Tenho um Form com uma UserControl inserida nele. Preciso nesse Form capturar todos os click dados na UserControl, independente se foi dado em cima de um Button TextBox, ListView.... qualquer objeto.

    Se eu ativar no Form o KeyPreview, em qualquer parte da UserControl que eu digitar algo o evento é passado para o Form quero a mesma coisa com o mouse.

     

    Um forte abraço a todos

    terça-feira, 26 de julho de 2011 14:05

Respostas

  • Elias,

    Mas, você pode implementar uma melhoria para fazer o attach em todos os controles de uma só vez... Veja só:

      public partial class UserControl1 : UserControl
      {
        public delegate void OnClickControls(object sender, EventArgs e);
        [Browsable(true)]
        public event OnClickControls ClickControls;
    
        public UserControl1()
        {
          InitializeComponent();
    
          AttachClickHandlers();
        }
    
        private void AttachClickHandlers()
        {
          this.Click += UserControl1_Click;
    
          foreach (Control control in this.Controls)
            control.Click += UserControl1_Click;
        }
    
        private void DetachClickHandlers()
        {
          foreach (Control control in this.Controls)
            control.Click -= UserControl1_Click;
        }
    
        private void UserControl1_Click(object sender, EventArgs e)
        {
          if (ClickControls != null)
            ClickControls(sender, e);
        }
      }
    
    



    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    • Marcado como Resposta Elias Júnior quarta-feira, 27 de julho de 2011 14:45
    quarta-feira, 27 de julho de 2011 13:17
    Moderador

Todas as Respostas