Listbox-Phänomen (VB5/6)

18/07/2009 - 22:35 von Juergen Thuemmler | Report spam
Hi *.*,

ich habe eine Form mit einem Listboxfeld (Multiple Selection = 1). Mit
folgendem Code werden alle selektierten Eintràge deselektiert:

Private Sub ClearSelection()
For j = 0 To List1.count - 1
With List1(j)
For i = 0 To .ListCount - 1
.Selected(i) = False
Next
.ListIndex = -1
End With
Next
End Sub

Diese Prozedur wird aus einem Button_Click aufgerufen und funktioniert. Die
Form hat KeyPreview = True gesetzt. Wenn ich aber die Button_Click-Prozedur
oder auch ClearSelection() direkt aus Form_KeyDown aufrufe (bei Strg+B),
werden zwar zunàchst alle Eintràge deselektiert, aber nach ca. 2 Sek. wird
der zuletzt selektierte Eintrag (egal in welcher Liste) wieder selektiert.
Es gibt keinen Timer im Projekt und auch kein ".Selected = True".
Irgendetwas selektiert diesen Eintrag, aber ich komme nicht dahinter, wer,
was, wo, wann, warum...
Any Ideas?

Jürgen.
 

Lesen sie die antworten

#1 Timo Kunze
18/07/2009 - 22:57 | Warnen spam
Juergen Thuemmler schrieb:
Private Sub ClearSelection()
For j = 0 To List1.count - 1
With List1(j)
For i = 0 To .ListCount - 1
.Selected(i) = False
Next
.ListIndex = -1
End With
Next
End Sub



Das geht auch schneller:
SendMessage List1.hWnd, LB_SELITEMRANGEEX, List1.Count - 1, 0

Timo
www.TimoSoft-Software.de - Unicode controls for VB6
"Those who sacrifice freedom for safety deserve neither."
"Demokratie ist per Definition unsicher. Ihr Schutz entsteht aus der
Überzeugung, dass die demokratischen Kràfte überwiegen und sich – auf
demokratischem Wege – durchsetzen."

Ähnliche fragen