Pregunta

Estoy trabajando en un formulario que mostrará enlaces para abrir diferentes tipos de informes. Este sistema tiene diferentes tipos de usuarios, por lo que los usuarios solo deberían poder ver los enlaces a los tipos de informes a los que pueden acceder.

Actualmente, la forma en que tengo esta configuración es que tengo una ArrayList de LinkLabels, pero el problema que tengo es cómo tener un evento LinkClicked para cada LinkLabel en la ArrayList para que aparezca un formulario específico a cada informe.

¿Fue útil?

Solución

Puede aplicar el mismo controlador de eventos a cada LinkLabel en su lista y obtener el LinkLabel específico del argumento del remitente.

Otros consejos

En realidad, tendría un solo controlador de eventos para todas las etiquetas de enlace (agregue el controlador durante el proceso de enlace de datos de ArrayList) con el nombre del informe que se cargará en la etiqueta CommandName de LinkLabel. Cuando se dispare el controlador de eventos, verificará el atributo CommandName y disparará la funcionalidad adecuada para cargar el informe dado.

Definitivamente recomiendo un solo controlador de eventos para todas las instancias dinámicas de LinkLabel.

Por lo general uso un Hashtable donde la clave es la instancia de LinkLabel y el valor es algo que se usará dentro del evento de clic (como la instancia del informe, si corresponde).

Luego, en el evento de clic que usas (por ejemplo)

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top