Checkbox aktivieren durch ListView

  • Hi,

    ich möchte die Checkbox aktivieren, wenn ein Eintrag im ListView ausgewählt ist.

    Dies funktioniert auch, jedoch wird die Checkbox immer deaktiviert und aktiviert, wenn ein anderes Item angeklickt wird.

    Wie kann ich dies verhindern? Oder ignoriert ihr sowas?

    • Offizieller Beitrag

    Wie kann ich dies verhindern?

    Das Problem tritt auf, weil Du auf ItemChanged prüfst. Dabei werden aber zwei Nachrichten an das Fenster gesendet.

    Lösen kann man das, indem man auf NM_CLICK prüft:

  • Hm , ok funktioniert dann mit der Maus. Aber wenn ich die Items mit den Pfeilstasten auswählen funktioniert es dann nicht mehr. Gibt es da auch eine Lösung?

    Dies war auch der Grund warum ich $NM_CLICK nicht verwenden wollte.

  • Nunja, sofern Oscar recht hat und das Event immer genau zweimal triggert kannst du dir auch einfach mit einer Zählervariable behelfen.

    Einmal editiert, zuletzt von misterspeed (16. August 2021 um 20:37)

    • Offizieller Beitrag

    Aber wenn ich die Items mit den Pfeilstasten auswählen funktioniert es dann nicht mehr. Gibt es da auch eine Lösung?

    Du kannst $LVN_KEYDOWN mit auswerten, dann ist das zwar nicht der Index, aber es funktioniert trotzdem, weil "ungleich -1":

    sofern Oscar recht hat und das Event immer genau zweimal triggert

    Nein, es sind nicht immer genau zwei Trigger. Manchmal auch drei oder (beim deaktivieren) nur einer.

    Das Problem ist, dass bei einem "Select-change" von einem Listview-Item zum nächsten, immer erst ein deselect des alten Items ausgelöst wird und dann wird das neue Item selected.

    Das deselect passiert aber auch, wenn man in einen leeren Bereich klickt (also kein Item selektiert ist). Und in dem Fall soll ja die Checkbox deaktiviert sein.

    Deswegen ist $LVN_ITEMCHANGED nicht geeignet, um das abzufragen oder man muss das kurzzeitige deaktivieren der Checkbox in Kauf nehmen.

  • Hab mal das Skript von Oscar erweitert, da ich diesen Thread gefunden habe.

    UEZ
    7. Januar 2011 um 20:20

    Dort wird das ermitteln des Indexes beschrieben.

    Hab mal die Version von Post 2 eingebaut. Oder findet ihr Post 6 besser?

    Was mich noch allgemein stört ist folgendes:

    Wenn man das Skript startet und dann die Pfeil nach oben Taste drückt, wird die Checkbox aktiviert ohne dass ein Item markiert ist :(

    • Offizieller Beitrag

    Wenn Dir das mit dem Dummy-Control besser gefällt, dann erledige die Auswertung gleich in der Dummy-Funktion: