Pergunta

Eu estou trabalhando em uma forma que irá exibir links para abrir diferentes tipos de relatórios. Este sistema tem diferentes tipos de usuários, de modo que os usuários só deve ser capaz de ver os links para os tipos de relatórios que eles podem acessar.

Atualmente, a maneira eu tenho essa configuração é que eu tenho um ArrayList de LinkLabels, mas o problema que estou tendo é como ter um evento LinkClicked para cada LinkLabel no ArrayList para que ele trará uma forma específica para cada relatório.

Foi útil?

Solução

Você pode aplicar o mesmo manipulador de eventos para todos os LinkLabel na sua lista e obter o LinkLabel específico a partir do argumento remetente.

Outras dicas

Na verdade, eu teria um manipulador de eventos único para todas as linklabels, (adicionar o manipulador durante o processo de ligação de dados da ArrayList) com o nome do relatório a ser carregado no rótulo CommandName do LinkLabel. Quando os fogos manipulador de eventos, você iria verificar o atributo CommandName eo fogo fora a funcionalidade apropriada para carregar o relatório.

Definitivamente recomendo uma manipulador de eventos único para todas as instâncias LinkLabel dinâmicas.

Eu costumo usar um Hashtable onde a chave é a instância LinkLabel e o valor é algo que vai ser usado dentro do evento de clique (como a instância de relatório, se for o caso).

Em seguida, no evento de clique que você usa (por exemplo)

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top