ucme2010
Goto Top

C Sharp listbox

Ich bin dabei ein kleines Projekt zu erstellen. Ich habe eine WindowsForms Anwendung mit einigen Textboxen und einer Combobox, sowie einer Listbox.

Ich fülle die Textboxen mit Infomationen und wähle ein festgelegtes Objekt in der Combobox. Nun speichere ich die Angaben in der Listbox. Alles soweit gut geklappt und sogar die einzelnen Textboxen gegen Fehleingaben gesichert. Mein Problem: Wenn ich später dann in der Listbox einige Einträge (Objekte) habe, will ich einen auswählen und nun sollen die wieder in die jeweiligen Textboxen ausgespuckt werden. Wie mach ich das am besten?? - Mit einem neuen Formular ?? oder kann ich das bestehende so lassen und die Angaben kommen da rein???
Vielen Dank im Voraus!

Content-Key: 169110

Url: https://administrator.de/contentid/169110

Printed on: April 24, 2024 at 23:04 o'clock

Member: MrTrebron
MrTrebron Jul 05, 2011 at 08:36:24 (UTC)
Goto Top
Ebenfalls kein Hallo

Du kannst die Daten wieder in das Formular zurück schreiben.

Bin jetzt gerade nicht der C#per aber in VB währe da die Eigenschaft .SelectedItem der ListBox Interessant oder aber der Handle SelectedIndexChanged

Ebenfalls ohne Gruß
Member: ucme2010
ucme2010 Jul 05, 2011 at 09:05:33 (UTC)
Goto Top
Hallo nachträglich face-smile
Ja danke für den Hinweis, werd mal schauen.
Gruß
ucme2010
Member: Jenna86
Jenna86 Jul 06, 2011 at 11:56:02 (UTC)
Goto Top
Ich habs ehrlich gesagt nicht so 100%ig verstanden, was du machen willst und wie du alles in deiner ListBox speicherst.

Ich vermute, du schreibst jeden Text aus einer TextBox als einen Eintrag in die ListBox und den ausgewählten Text in der ComboBox ebenfalls.
Oder erstellst du ein neues Objekt, welches alle Infos aus den Boxen hält und fügst es als Eintrag hinzu in die ListBox?

Falls du alles einzeln einträgst würde ich deine Eingabeobjekte in ein Array packen und die Indizes gleich den Indizes in der ListBox setzen.
So, dass das erste Objekt in deinem Array dem ersten Eintrag deiner ListBox entspricht etc.

Dann kannst du z.B. im SelectedIndexChanged Event der ListBox die TextBox mit dem SelectedIndex der ListBox auswählen und den Text des Eintrages der ListBox hineinschreiben

textBoxListe[listBox.SelectedIndex] = listBox.SelectedItem.ToString(); // ausm Stehgreif, aber die Richtung sollte klar sein

Wenn du ein Item aus der ComboBox wählen willst entsprechend

comboBox.SelectedText = listBox.SelectedItem.ToString();

Du kannst auch im Event selbst abfragen von welchem Typ das Objekt im Array ist ( ob TextBox oder ComboBox ) und entsprechend casten.

if ( objectListe[listBox.SelectedIndex] is TextBox )
{
((TextBox)objectListe[listBox.SelectedIndex]).Text = listBox.SelectedItem.ToString();
}
else
{
((ComboBox)objectListe[listBox.SelectedIndex]).SelectedText = listBox.SelectedItem.ToString();
}

Ich habs wie gesagt nur fix ausm Kopf geschrieben, alles ungetestet!

Falls du einen Eintrag für alle Eingaben machen willst könntest du die Eingaben über einen Separator in einem String zusammenführen und beim IndexChangedEvent auseinandernehmen über die Trim()-Funktion des Strings. Diese liefert dir ein StringArray zurück, mit welchem du wieder über den Index an die einzelnen Eingaben kommst!

Grüße

edit: Ich meinte natürlich die .Split(...) Methode!!!