Problem mit Listbox und getcount()



  • Moin miteinander,

    bin gerade am Verzweifeln. Ich will die Anzahl der Elemente in einer Listbox auslesen. Das habe ich in meinem Programm auch schon getan.
    Aber an einer Stelle funktioniert es einfach nicht und ich habe keine Ahnung
    warum.
    Das markieren würde klappen, wenn ich in der unteren Zeile einen Zahlenwert eingeben.
    m_Auftraegecontrol ist die Controlvariable der Listbox.

    int Anzahl = m_Auftraegecontrol.GetCount();
    m_Auftraegecontrol.GetCurSel(Anzahl);
    

    Wo könnte der Fehler liegen? Mit UpdateData() hab ich auch schon rumgespielt.

    Ich hoffe, dass mir jemand nen heißen Tip liefern kann.

    Gruß tony



  • Erstens: Um ein Listenelement auszuwählen, solltest du besser SetCurSel() verwenden. (GetCurSel() sagt dir nur, welcher Eintrag gewählt war - und nimmt im Übrigen keinen Parameter entgegen)

    Zweitens: Der Index beginnt bei Null, darum hat das letzte Element den Index 'Anzahl-1'.



  • wohin soll den GetCurSel() den wert schreiben, sprich Index.
    In den Luftleeren Raum 😉 ??

    ändere mal die Zeile so ab.

    // Selektierten Indexwert ermitteln
    int wert = m_Auftraegecontrol.GetCurSel();
    


  • Und ggfs. solltest Du den Rückgabewert von SetCurSel() auswerten, und wenn es nur ein

    VERIFY(m_listbox.SetCurSel(n) != LB_ERR);
    

    ist. Bei Fehlern wird man dann zumndestens in der DEBUG Version mit der Nase drauf gestossen.



  • Ups, sorry,
    sollte natürlich

    int Anzahl = m_Auftraegecontrol.GetCount();
    m_Auftraegecontrol.SetCurSel(Anzahl);
    

    heißen.

    Stimmt, Anzahl-1 -> das wars.

    Viele Dank euch 🙂


Anmelden zum Antworten