ListView Werte übergeben bei Doppelclick
-
Hallo !
Wie kann ich beim Doppelklick auf den Inhalt von ListView die Werte übergeben um damit zu arbeiten.
Kurze Erklärung :
ListView :
ID |Name |Vorname |....
-------------------------
1 |Kulle |Kalle |....
2 |Schmidt|Hans |....Ich klicke in die Zeile 2 | Schmidt | Hans ....
und möchte dann die Werte ausgeben.Wie komme ich aber da ran an die Werte ?
Danke schonmal im Vo rr aus
-
ListView->MultiSelect = false; ListView->Activation = ItemActivation::TwoClick;
Ereignis ListView::SelectedIndexChanged behandeln:
Aktuell ausgewählte Zeile findest du dann unter ListView->SelectedItem
oder beiMultiSelect = true
: ListView->SelectedItems
-
Danke erstmal für deine Antwort. Allerdings weiss ich noch immer nicht wie ich an die Daten dann wieder rankomme. Also das ich den Datensatz wieder in textfelder einsetzen kann.
Irgendwie steh ich aufn Schlauch
Ich klicke auf die Zeile und möchte dann die Daten die in der Zeile stehen wieder
ausgeben in verschiedenen Textboxen um den Inhalt zu verändern.Kurz erklärt ich habe ein array der klasse person angelegt mit den Variablen id,name,vorname,wohnort usw . diese gebe ich in der listview aus. wenn ich draufklicke möchte ich den inhalt der zeile die ich angeklickt habe wieder in textboxen ausgeben um diese daten wieder zu verändern. es soll natürlich nur die person geändert werden die ich anklicke.
mir fehlt eigentlich nur der teil wie ich den inhalt der angeklickten person wieder rausbekomme.
so ungefähr deke ich mir das
if(listview->zeile == checked){ name = listview->spalte(0); vorname = listview->spalte(1); ... usw }
hoffe ich konnte mein problem soweit erklären !
-
Füre eine Daten(bank)anwedung würde ich zu dem DataGridView tendieren:
BindingSource->Source mit deinem Array (sollte jedoch List<Person> sein) füllen
DataGridView mit der Source verlinken
LinkSonst (Psydocode):
private: void OnSelectedIndexChanged(Object^ sender, EventArgs^ e) { ListView^control = dynamic_cast<ListView>(sender); if(control && control.SelectedItem) { ListViewItem^ item = control.SelectedItem; String^ ersteSpalte = item.Text; String^ zweiteSpalte = item.SubItems[0].Text; // TODO: überprüfen wie viele Einträge die Liste hat String^ dritteSpalte= item.SubItems[1].Text; /* ... */ } }
-
Dank Dir. Ich schaue mir mal deine Lösung an . is bestimmt die bessere
So ich poste mal meine Lösung !
Habe nach etlicher überlegung eine Lösung gefunden !Da ich ja in der ersten Spalte die ID habe die ja automatisch die Nummer der Auflistung hat kann ich danach so wie unten arbeiten.
int in;
in = Convert::ToInt32(this->listView1->SelectedItems[0]->Text->ToString());this->textBox2_name->Text = neuPerson[in]->getName()->ToString();
this->textBox3_vorname->Text = neuPerson[in]->getVorname()->ToString();