Listboxen in VB6

Mezzo_Fix

Cadet 3rd Year
Registriert
Jan. 2008
Beiträge
56
Moin!

Ich habe eine Listbox in meinem Programm und möchte mehrere Werte in "ItemData" eingeben und diese in Textboxen auslesen.

Also man wählt ein Element in der Listbox aus und dann wird in der ersten Textbox der erste zugeordnete Wert angezeigt und in der Zweiten der zweite Wert dieses Elements.
Nun weiß ich nicht wie man diese Werte auslesen kann. Wenn man einen Wert hat ist es ja ziemlich einfach:
Code:
Text1.Text = List1.ItemData(List1.ListIndex)

Doch wie könnte ich nun den zweiten Wert auslesen?
Etwa so? Und wie geht's dann weiter?
Code:
Text2.Text = List1.ItemData...

Ich hoffe ihr versteht was ich meine und könnt mir dies erklären.

MfG Mezzo_Fix
 
hi,

einem Listitem kannst du doch nur eine ItemData zuweisen. Wenn du diese allerdings mit einem Trennzeichen eingibst, kannst du die Split Funktion benutzen. Beispiel:
ItemData sieht so aus
Wert1;Wert2
Wert1,Wert2
etc...

Auslesen geht dann so:
Dim Werte() As String
Werte = Spilt(List1.ItemData(List1.ListIndex), ";")

Text1.Text = Werte(0)
Text2.Text = Werte(1)
 
Danke für deine Hilfe, allerdings funzt das nicht ganz:

Code:
Dim Werte As String

Private Sub CmdBerechnen_Click()
TxtWährung.Text = Werte(0)
TxtWährung2.Text = Wert(1)
End Sub

[COLOR="SeaGreen"]Private Sub Form_Load()[/COLOR]
Werte = Split(Lstwährung1.ItemData(Lstwährung1[COLOR="SeaGreen"].ItemData[/COLOR]), ";")

So sieht das bei mir aus. Bei mir ist es ein Währungsrechenr. Daher ist die listbox1 = lstwährung1, textbox1= txtwährung1, textbox2=txtwährung2

allerdings wird bei mir immer angezeigt "Fehler beim Kompilieren.
Argument ist nicht optional". Dann markiert das Programm das, was ich grün markiert habe.
Woran liegt der Fehler?

€dit: Mir fällt grade auf, dass die Werte in der ItemData nicht gespeichert werden. Auch wenn ich dies wiederhole werden sie nicht gespeichert. Muss ich bei der Listox noch etwas einstellen?
 
Zuletzt bearbeitet:
Hi,

die ItemData Werte sollten eigentlich gespeichert werden, da wüsst ich so auch nicht weiter.

Dein Fehler ist relativ einfach. Du hast die Klammern bei der Deklaration Vergessen. Die Variable 'Werte' muss als Array von Strings deklariert werden.
Ich weiss gerade nicht ganz genau wie das bei VB6 ist (ich benutz nurnoch .Net), aber eine der beiden Varianten ist es:
Dim Werte() As String
oder
Dim Werte As String()
 
mir ist aufgefallen, dass meine listboxen generell keine strings speichern...:(
gibt es da ne lösung?
 
Wenn ich zum beispiel eine listbox anlegen möchte, die in "list" wörter gespeichert hat (also ganz normal) und in "itemdata" auch wörter, also strings zugeordnet hat. allerdings funktioniert das leider nicht.
 
hey,

soweit ich weiss musst du das in der Form_Load schon machen. ich hab dir hier mal eine Code geschrieben, vllt. hilft er dir ja brauchst einen Command Button, eine TextBox und ein Listbox.


Code:
Option Explicit
Private Sub Command1_Click()
Dim iIndex As Integer
iIndex = List1.ListIndex
Text1.Text = List1.List(iIndex)
End Sub
Private Sub Form_Load()
List1.AddItem "Gordon", 0
List1.AddItem "Barney", 1
List1.AddItem "Alyx", 2
List1.AddItem "Kleiner", 3
End Sub


hoffe das konnte dir helfen.

grüße

munkey
 
danke erstmal.
ich meinte eigentlich, dass ich die einem wert zugeordneten namen (zb. barney, alyx oder kleiner) einen weiteren zuweisen möchte.
angenommen man hat eine listbox in denen namen stehen : max, johannes, olaf, peter
nun möchte ich, dass wenn ich einen dieser namen klicke in der textbox der wert angezeigt wert, den ich diesem namen zugeordnet habe. Angenommen die textbox soll das hobby dieser "person" wieedergeben auf die ich geklickt habe.
Klicke ich z.b. auf Max, dann soll in der textbox (zb) fussball erscheinen.
Also müsste man "Fussball" ja eigentlich in "Itemdata" schreiben. doch vb speichert dies nicht.

ich hoffe ich konnte mein problem einigermaßen gut beschreiben.

mfg

hat keiner ne lösung?
 
Zuletzt bearbeitet:
mhh ich glaub ich würde sowas halt mit einer datenbank lösen.

das wäre meine idee, vllt kennt ja noch jemand anderes einen anderen weg.

grüße
 
Zurück
Oben