none
Como criar Buttons em tempo de execução e identificar no Form_Load, qual Button foi pressinado? RRS feed

  • Pergunta

  • Olá,

    O cenário é o seguinte.
    Tenho uma MasterPage onde eu preciso criar os Buttons em tempo de execução, conforme o menu selecionado do banco de dados.
    Quando o usuário clicar no button criado, eu preciso identificar, no Form_Load da pagina(MasterPage), qual button foi pressionado, enviar via parametro para a pagina principal(ContentPlaceHolder) e chamar uma função correspondente a esse button.

    A idéia é que eu tenha um menu dinamico criado em tempo de execução na masterpage, porém, as Logicas de Negocios desse menu deve estar na pagina(ContentPlaceHolder) que utiliza a MasterPage. Mas eu não sei como criar os buttos do menu em tempo de execução e nem como identificar qual deles foi pressionado para chamar a sua função correspondente.

    Isso é possivél? Como posso fazer?

    Desde já, muito obrigado.

    sexta-feira, 3 de dezembro de 2010 09:58

Respostas

  • Faz assim

      Button myButton = new Button();
          myButton.Click += new EventHandler( myButton_Click );
    
     void myButton_Click( object sender , EventArgs e )
        {
          throw new NotImplementedException();
        }

    • Sugerido como Resposta Thiago Dorneles sexta-feira, 3 de dezembro de 2010 10:40
    • Marcado como Resposta Harley Araujo terça-feira, 7 de dezembro de 2010 11:22
    sexta-feira, 3 de dezembro de 2010 10:40
    Moderador
  • Olá,

     

    Só complementando a resposta do Sailor, dentro da rotina myButton_Click faça assim para pegar o botão (se tiver mais de um botão chamando a mesma função):

    void myButton_Click(object sender, EventArgs e)
    {
     // assim você pega o controle que esta chamando esta rotina
     Button btn = (Button)sender;
    }
    

    Abraços


    Thiago Dorneles
    • Marcado como Resposta Harley Araujo terça-feira, 7 de dezembro de 2010 11:22
    sexta-feira, 3 de dezembro de 2010 10:42

Todas as Respostas

  • Faz assim

      Button myButton = new Button();
          myButton.Click += new EventHandler( myButton_Click );
    
     void myButton_Click( object sender , EventArgs e )
        {
          throw new NotImplementedException();
        }

    • Sugerido como Resposta Thiago Dorneles sexta-feira, 3 de dezembro de 2010 10:40
    • Marcado como Resposta Harley Araujo terça-feira, 7 de dezembro de 2010 11:22
    sexta-feira, 3 de dezembro de 2010 10:40
    Moderador
  • Olá,

     

    Só complementando a resposta do Sailor, dentro da rotina myButton_Click faça assim para pegar o botão (se tiver mais de um botão chamando a mesma função):

    void myButton_Click(object sender, EventArgs e)
    {
     // assim você pega o controle que esta chamando esta rotina
     Button btn = (Button)sender;
    }
    

    Abraços


    Thiago Dorneles
    • Marcado como Resposta Harley Araujo terça-feira, 7 de dezembro de 2010 11:22
    sexta-feira, 3 de dezembro de 2010 10:42