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.



Antwort per Email an