-
Gesamte Inhalte
6 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Naschkatze
-
-
wie schon der pirat vor mir gesagt hat sind da nur die titel drin. Wäre aber hilfreich n bisschen mehr input aus deiner klasse zu bekommen. welchen rückgabetyp hat content denn?
Meine Klasse Note:
Public Class Note Public title As String Public tags As String Public content As String Public Sub New() End Sub Public Sub New(ByVal title As String, ByVal tags As String, ByVal content As String) Me.title = title Me.tags = tags Me.content = content allNotes.Add(Me) End Sub End Class
Hier nochmal zur Übersicht ein Auszug aus meinem Anfangspost:
-
Warum machst du es denn so umständlich? Wozu die Schleife ?
Du gehst auf deine Listbox. Gehst auf das event selected value change und tippst einfach folgendes ein:
Private Sub ListBox1_SelectedValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedValueChanged TextBox1.Text = ListBox1.SelectedItem End Sub
So komm ich aber doch nicht an meine einzelnen Klassenelemente .title und .content ran.
-
Du füllst die ListBox ja nur mit den Titeln deiner Objekte, dann stehen natürlich auch nur diese drin
Ha! Na, immerhin hatte ich ne Ahnung, woran es liegen könnte :-P
Wie muss ich die Liste denn dann füllen? Ich hatte den Ausdruck
ListBox_Notes.Items.Add(listElement.title)
extra gewählt, weil ich gerne die Titel in der Liste angezeigt haben wollte. Die Inhalte hingegen sollen erst nach anklicken in nebenstehenden Textfeldern erscheinen.
-
Hallo,
Es ist doch eine ListBox und keine ListView oder so?Ja, es ist eine ListBox, hab extra nochmal nachgeschaut. Man weiß ja nie...
-
Hallo zusammen,
da meine Frage fast die gleiche wie die Eröffnungsfrage ist, mache ich einfach mal hier weiter.
Also...
Problemstellung:
Mittels Listbox ausgewählte Daten vom Typ Note (eine eigene Klasse) in einem Textfeld ausgeben.
Ich habe eine Klasse Notes mit den Elementen Title und Content, beides String-Variablen. Die angelegten Notizen werden in einer Arraylist namens allNotes gespeichert.
Der Inhalt von Title und Content der in der Listbox ausgewählten Notiz soll nun in einem Textfeld angezeigt werden. Also, eins für den Titel und eins für den Content, nicht zusammen im selben Feld.
Nach vielem Ausprobieren habe ich dann Dominiks Vorschlag in Post 12 genommen.
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click TextBox1.Text = "" For Each item As Object In ListBox1.SelectedItems TextBox1.Text = TextBox1.Text & item & vbCrLf Next End Sub End Class
Private Sub ListBox_Notes_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox_Notes.SelectedIndexChanged For Each item As Note In ListBox_Notes.SelectedItems TextBox_ShowTitle.Text = item.title TextBox_ShowContent.Text = item.content Next End Sub
Daraufhin bekam ich zwar keine Fehlermeldung, aber angezeigt wurde auch nichts. Gebe ich direkt einen Wert ein...:TextBox_ShowTitle.Text = item.title
wird zuTextBox_ShowTitle.Text = "Test"
...funktioniert es jedoch, sprich, der manuell eingegebene Wert wird angezeigt.
Die Listbox übernimmt doch aber die gesamten Objekte, oder nicht? Oder muss ich anhand des Indexes oder so das passenden Objekt aus meiner allNotes ArrayList raussuchen und dort die Daten entnehmen?
Ich hoffe, ihr könnt meiner Logik ein wenig auf die Sprünge helfen.
Lieben Gruß,
Julia
Da ich immer nur eine Notiz angezeigt haben will, wurde bei mir folgende Version daraus:
Noch ein ListBox-Problem
in .NET
Geschrieben
Ay, das war ja einfach! So funktioniert's, vielen Dank! Die ToString der Klasse überschrieben, so dass nur der Titel zurückgegeben wird, zum Füllen der Liste dann das gesamte Objekt genommen statt nur den Titel ( :upps ) und dann war das Ausgeben in den Textfeldern auch kein Problem mehr.
Dass mit dem Binden der Liste werd ich auch noch ausprobieren. Mag ja schließlich alles richtig machen und nicht unbedingt tricksen. Aber immerhin sehe ich so schon mal ein Ergebnis, das motiviert doch ganz gewaltig!
Vielen, vielen Dank für die schnelle Hilfe!