Hallo Metti,
ich habe mir dein beispiel angesehen, habe dazu 2 anmerkungen/fragen: 1.
beide checkboxen einer reihe können angeklickt werden, was bei mir nicht
der fall ist (entweder-oder) und 2. das textarea-feld schreibt jeden
schritt bis zum endgültigen ergebnis mit.
Ferner schreibst du, dass in meinem code erst der cellklick kommt und
dann erst wird cellcheck auf true gesetzt. Ich habe deshalb jetzt mal
einen anderen weg versucht und zwar wie folgt:
for i = 0 to me.ListCount-1
if me.CellState(i,1) = CheckBox.CheckedStates.checked then
tn1 = tn1+chr(44)+me.cell(i,0)
elseif me.CellState(i,2) = CheckBox.CheckedStates.Checked then
tn2 = tn2+chr(44)+me.cell(i,0)
end
next
Das klappt bei meinen 5 reihen auf die letzte, die überhaupt nicht
erfasst wird. Mit dem debugger finde ich nichts heraus. Also nochmals
die frage: bug in meinem kopf/code oder der software ??
Am 28.08.11 11:51, schrieb Stefan Mettenbrink:
nobe wrote:
Hallo, in einer listbox mit checkboxen wird die letzte position
falsch angezeigt: klicke ich nämlich beim 5. namen in die
anwesend-spalte, dann wird dies als 'entschuldigt' angezeigt. Warum
?? Bug ??
Ich füge mal den code bei.
Code beifügen ist immer gut!
So wie es aussieht, kummt erst der CellKlick-Event und danch wird erst
CellCheck auf True gesetzt. Ist etwas unglücklich.
So funktioniert es bei mir:
dim i as integer
dim s1,s2 as String
if me.CellCheck(row,column)=true then
if column = 1 and me.CellCheck(row,2)=true then
me.CellCheck(row,2) = false
elseif column = 2 and me.CellCheck(row,1)=true then
me.CellCheck(row,1) = false
end
end
s1="Anwesend: "
s2="Entschuldigt: "
for i=0 to me.ListCount-1
if i=row then
if me.CellCheck(row,column)=false then
s1=s1+me.Cell(i,0)+","
else
s2=s2+me.Cell(i,0)+","
end
else
if me.CellCheck(i,1)=true then
s1=s1+me.Cell(i,0)+","
else
s2=s2+me.Cell(i,0)+","
end
end
next
TextArea1.text = left(s1,len(s1)-1)+EndOfLine+left(s2,len(s2)-1)
MfG, Metti.