Item aus einer ListBox löschen, auch aus List<T> löschen



  • Hallo,

    Ich habe eine ListBox, man kann dort Items einfügen, die zuvor über eine textBox abgefragt wurden (ein Namen sowie eine Zahl), wenn ein Item eingefügt wird werden dessen Informationen(Name und zahl ,als mini-Klasse verpackt) einer List<T> hinzugefügt. Wenn man jetzt aber einen Wert aus der ListBox löscht, soll dieser auch aus der List gelöscht werden, ich hab ein wenig rumprobiert, aber ohne wirklich zu verstehen was ich da mache und ohne Erfolg:

    //Wenn der Entfernen-Button gedrückt wird:
    listBox1->Items->Remove(listBox1->SelectedItem);
    Speicher->Remove(Speicher[listBox1->SelectedIndex]);
    

    Ich hoffe ihr könnt mir helfen.

    Vielen Dank



  • ListBox-Items sind doch allgemein Objekte, nicht nur Strings. Warum packst Du Deine mini-Klasse-Objekte nicht direkt in die ListBox und ersetzt ToString() in dieser Klasse damit die Strings in der List dargestellt werden?



  • Hallo,

    Du kannst wie witte das bereits schreibt jede eigene Klasse (von Object abgeleitet) als Item übergeben. Der Text wird durch den überschriebenen Aufruf von ToString() in die ListBox gepackt:

    #pragma once
    using namespace System;
    ref class CMiniClass
    {
    public:
    	String ^Text;
    	int		Wert;
    	CMiniClass(String ^t, int v)
    	{
    		Text = t;
    		Wert = v;
    	}
    	virtual String ^ToString() override { return Text; }
    };
    
    //.....
    
    for (int i=1; i<=10; i++)		
    			 listBox->Items->Add(gcnew CMiniClass(String::Format("Eintrag {0}",i), i*10));
    

    gruss
    foo



  • Ah ok ich verstehs, das ist ja ganz schön praktisch :)!

    Eigene Klassen werden dann also automatisch von der Object Klasse abgeleitet, oder?

    Vielen Dank nochmal!


Log in to reply