Frage

Ich arbeite an einer Form, die Links anzuzeigen verschiedene Arten von Berichten zu öffnen. Dieses System hat verschiedene Arten von Benutzern, so sollten die Benutzer nur in der Lage sein, die Links zu den Arten von Berichten zu sehen, die sie zugreifen können.

Derzeit ist die Art, wie ich dies festgelegt habe, ist, dass ich eine Arraylist von LinkLabels habe, aber das Problem, das ich habe, ist, wie für jedes Linklabel in der Arraylist ein LinkClicked Ereignis haben, so dass es eine Form zu bringen, wird spezifische zu jedem Bericht.

War es hilfreich?

Lösung

Sie können die gleichen Event-Handler zu jedem Linklabel in der Liste übernehmen und das spezifische Linklabel vom Sender Argumente erhalten.

Andere Tipps

Eigentlich würde ich einen einzigen Event-Handler hat für alle linklabels, (fügen Sie den Handler während der Datenbindung Prozesses des Arraylist) mit dem Namen des Berichts in dem Command Etikett des Linklabel geladen werden. Wenn die Ereignisbehandlungsroutine ausgelöst, würden Sie das Command Attribut und das Feuer aus der entsprechenden Funktionalität überprüfen Sie den gegebenen Bericht zu laden.

Auf jeden Fall ein einzelnes Event-Handler für alle dynamischen Linklabel Fällen empfehlen.

ich in der Regel eine Hashtable verwenden, wo der Schlüssel das Linklabel Instanz ist und der Wert ist etwas, das in dem Click-Ereignisse (wie die Berichtsinstanz, falls zutreffend) verwendet wird.

Dann in dem Click-Ereignisse Sie (zum Beispiel) verwenden

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top