Steuerelemente suchen



  • Hallo,
    ich habe einen Dialog der beim Programmstart erzeugt wird.
    Auf diesem Dialog wird gleich danach ein ListView Steuerlement erzeugt.
    Jetzt möchte ich irgendwann zur Laufzeit ein neues Element in die Liste
    einfügen.
    Wie mache ich das, bzw. wie krieg ich Zugriff auf ein einmal erstelles Steuerelement ?

    Bitte um Hilfe, Jörg



  • Hast du dein Steuerelement in einer Variable, einem Array oder gar nicht ansprechbar gespeichert ? Ich nehme mal an, "nicht ansprechbar". Das ist aber kein Problem, denn mit "ein wenig" Reflection kommen wir an alles ran... 😃 Bevor wir diese Möglichkeiten ausnutzen, hoffen wir zuerst mal darauf, das du dem Control selbst einen Namen zugewiesen hast. Probier mal etwas in der Art :

    using namespace System::Windows::Forms;
    //...
    Form __gc *Dialog = __gc new Form();
    //...
    System::Int32 Index = 0;
    while (Index != Dialog->Controls->Count)
        if (Dialog->Controls->Item[Index]->Name == S"...")
            //...
        else
            ++Index;
    


  • Jedes Control, auch Form, hat ein Property Controls, hier kannst du zur Laufzeit weiter Controls, z.B. ListView hinzufügen ( Add(...), bzw. entfernen ( Remove(...) ). Schau dir dazu am besten an wie es der Desigener macht. Mit Insert kannst auch an eine bestimmte Position in der Liste einfügen.

    Zum Zugriff auf dein dynamischee Control merkst du dier am besten in einer Variable dein Control, als du andauernd die List durchgehst.


Anmelden zum Antworten