Domanda

Sto lavorando a un modulo che visualizzerà collegamenti per aprire diversi tipi di rapporti. Questo sistema ha diversi tipi di utenti, quindi gli utenti dovrebbero essere in grado di vedere solo i collegamenti ai tipi di report a cui possono accedere.

Attualmente, il modo in cui ho impostato questo è che ho un ArrayList di LinkLabels, ma il problema che sto riscontrando è come avere un evento LinkClicked per ogni LinkLabel nell'ArrayList in modo che venga visualizzato un modulo specifico a ciascun rapporto.

È stato utile?

Soluzione

Puoi applicare lo stesso gestore di eventi a ogni LinkLabel nell'elenco e ottenere il LinkLabel specifico dall'argomento mittente.

Altri suggerimenti

In realtà, avrei un singolo gestore di eventi per tutti i linklabels (aggiungere il gestore durante il processo di database di ArrayList) con il nome del report da caricare nell'etichetta CommandName del LinkLabel. Quando viene attivato il gestore eventi, verifichi l'attributo CommandName e spegni la funzionalità appropriata per caricare il rapporto specificato.

Consiglio vivamente un singolo gestore di eventi per tutte le istanze dinamiche di LinkLabel.

Di solito uso un Hashtable in cui la chiave è l'istanza LinkLabel e il valore è qualcosa che verrà utilizzato all'interno dell'evento click (come l'istanza del report, se appropriato).

Quindi nell'evento click che usi (ad esempio)

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top