Announcement

Collapse
No announcement yet.

RemoveHandler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • RemoveHandler

    Hi,

    In meiner Software möchte ich für eine Schaltfläche (also eigentlich ist es ein selbst definiertes Control, aber das sollte nichts ausmachen )unterschiedliche Aktionen ausführen, je nachdem welches Element in einer ListView ausgewählt ist. Wenn ich aber im Click-Handler abfrage welches Element ausgewählt ist, wird erstens dieser Handler viel zu unübersichtlich und zweitens sind Erweiterungen irgendwann kaum noch durchzuführen, weil ich bei jeder neuen Auswahl oder Entfernung einer alten eine ewig lange Sub durchsuchen muss, um die Programmierung anzupassen. Gut es wäre übersichtlicher machbar in der Form
    Code:
    Select Case ListView1.SelectedItems(0).Tag
       Case 1: DoAuswertungLieferanten()
       Case 2: DoAuswertungKunden()
       Case 3: DoAuswertungWaren()
       Case 4: DoAuswertungAuslastung()
    ...
    End Select
    aber irgendwie widerstrebt es mir, weil ja eigentlich die SelectedIndexChanged-Routine für die Folgen der Auswahl verantwortlich sein sollte (diese Routine schaltet ja auch dei Schaltfläche sichtbar je nach Auswahl); ich müsste sonst bei jeder Änderung der Auswahlmöglichkeiten diese Änderung in 2 Routinen nachziehen.

    Daher dachte ich mir, es wäre einfacher, wenn bei jeder zusätzlichen Auswahlmöglichkeit ein eigener Handler mitprogrammiert wird, und in der ListView_SelectedIndexChanged Routine der entsprechende Handler der Schaltfläche zugeordnet wird.

    Das Problem das ich nun habe sieht folgendermaßen aus: mit AddHandler wird, wenn ich das richtig verstanden habe, ein Handler hinzugefügt, nicht aber der aktuelle überschrieben, den müsste ich zuerst mit RemoveHandler selbst entfernen. Nun weiß ich aber nicht, welches der aktuelle Handler ist, ich bräuchte also entweder eine Funktion wie RemoveAllHandlers(Event), oder eine Funktion, wie ich auf die Collection der momentan zugeordneten Handler zugreifen kann, das habe ich aber bisher nicht gefunden, daher hoffe ich, hier kann mir jemand weiterhelfen.

    Gruß
    Martin
Working...
X