1
resposta

Menu Dinâmico (EventHandler)

Estou desenvolvendo uma aplicação, onde faço o carregamento do MENU diretamente do banco de dados de acordo com as permissões do usuário. Porém, quando tento criar o evento dinamicamente não consigo passar o objeto como STRING. Alguém sabe como proceder ou alguma maneira melhor de tratar este erro?

pai.Click += new EventHandler(menuUsuario.Formulario);

pai.Click += new EventHandler(Aqui busco do banco uma String e o erro pede um object EventHandler);

Grato.

1 resposta

Dudepaiva, na verdade você não quer criar um evento. Você deseja criar um tratador para determinado evento (daí o nome EventHandler). O evento que você deseja tratar é o de click. Então oq você deve fazer é 1) escrever um método que será executado quando o evento disparar 2) vincular o método ao evento através da propriedade Click com o operador +=.

O método que você deve criar precisa ter uma assinatura específica. Ele não deve retornar nada (void) e precisa ter 2 argumentos de entrada, o primeiro do tipo object e o segundo do tipo EventArgs.

Exemplo de um método com essa assinatura:

public void Tratador(object sender, EventArgs args)
{
  MessageBox.Show("Alguma coisa foi clicada!");
}

Em seguida um exemplo da vinculação deste tratador ao evento Click:

pai.Click += Tratador;

Entendeu? Dá um feedback aqui pra gente, por favor.