ListView-Problem...



  • Hallo,

    ich habe ein Problem mit einem ListView. Ich möchte Einträge in diesem ListView nach oben verschieben können, zwecks der Editierbarkeit. Folgender Quelltext wird dafür verwendet:

    TListItem *ListItem, *temp_item;
    int index=0;

    if ((ListItem = ListView->Selected) != NULL)
    {
    if ((index = ListView->Items->IndexOf(ListItem)) >= 1)
    {
    temp_item = ListView->Items->Insert(index - 1);
    temp_item->Caption = ListItem->Caption;
    temp_item->SubItems->Add(ListItem->SubItems->Text.Trim());
    ListView->Selected->Delete();
    }
    }

    Das funktioniert auch sehr gut. Das Problem, was ich habe ist, dass nach dem Verschieben eines Eintrags der Fokus verloren geht. Ich muss den Eintrag immer wieder neu markieren, damit ich ihn weiter verschieben kann. Wie kann ich denn die Funktion SetFocus() in diesen Quelltext einbauen, damit es funktioniert?
    Danke für eure Hilfe,

    Happy



  • Nur mal so ein Gedanke.
    Du weisst, die neue Position (index-1).
    Also SetFocus(index-1);



  • Könntest du eventuell etwas präziser sein? Ich weiß, dass ich die Position mit (index-1) habe. Ich weiß aber nicht, wie ich die Funktion, bezogen auf den genannten Quelltext, einfügen kann.
    Kannst du mir da helfen?

    Happy


Anmelden zum Antworten