Gå til innhold

Anbefalte innlegg

Er det mulig å få sånn at når man klikker i en listbox på en av itemene så får man opp en text i textboxen?

 

f.eks hvis man lager et program som holder styr på cdkeyer så adder man et spill eller program og serial nr. og når man klikker på den igjen så kommer serial nr opp i textboxen under....?

 

mvh

 

wacie

Lenke til kommentar
Videoannonse
Annonse

Hmmm.. du vet at serie-nummer og sånn er fy-fy ikkke sant? :D

 

Nuh vel, jeg antar vi snakker hypotetisk her.

 

Du kan gjøre følgende:

 

 

Dim strTemp As String

Dim str_Array() As String



strTemp = List1.List(List1.ListIndex)

str_Array = Split(strTemp, " ") 

Text1.Text = str_Array(1)

 

 

Det forutsetter at nøkkelelementer i hvert item er adksilt med en space. Hvis du skiller med.. f.eks ":" i stedet, bytter du ut den ene linjen med:

 

str_Array = Split(strTemp, ":") 

Lenke til kommentar

Ja det var sånn jeg mente. Takk. Men når jeg kjørte programmet å trykket bare i listboxen så kom det opp:

Run-Time error '9':

 

Subscript out of range

 

Og da vlir det en gul ramme rundt


Text1.Text = "Serial:  " + str_Array(1)

 

....?

Lenke til kommentar

sorry skrev litt feil. den feilen kommer opp når man venstreklikker i listboxen når det ikke er noen ting addet. Og hva er listbox-elementene??

(sorry at jeg er lit newbie startet med dette for 2 dager siden :( )

Lenke til kommentar

Hvis ingenting er valgt blir ListIndex = -1.

Vi må ta høyde for dette.

 




Dim strTemp As String

Dim str_Array() As String



If List1.listIndex>-1 Then

   strTemp = List1.List(List1.ListIndex)

   str_Array = Split(strTemp, " ") 

   Text1.Text = "Serial:  " + str_Array(1)

End If

Lenke til kommentar

Ja nå virker programmet som det skal.. Men jeg ble ikke helt fornøyd med den listen... Den ble ganske rotete f.eks

 

Spill1 = 23456789

Sill1234123 = 234567890

 

Sånn blir det og det er ikke særlig fint... Finnes det en måte å få endret det på sånn at alt stå likt eller at bare navnet står der og når man klikker på det så kommer serial nr. i textboxen under..?

 

- wacie

Lenke til kommentar
Ja nå virker programmet som det skal.. Men jeg ble ikke helt fornøyd med den listen... Den ble ganske rotete f.eks

 

Spill1 = 23456789

Sill1234123 = 234567890

 

Sånn blir det og det er ikke særlig fint... Finnes det en måte å få endret det på sånn at alt stå likt eller at bare navnet står der og når man klikker på det så kommer serial nr. i textboxen under..?

 

- wacie

 

Er ikke helt sikker på hva som er problemet her.

 

Muligens løser dette problemet ditt:

 

 




Private Sub Command1_Click()

  

  'Tømmer datastrukturer og legger inn nye data

  clearData

  addData "var1", "data1"

  addData "var2", "data2"

  addData "var3", "data3"

End Sub



Private Sub clearData()

   List1.Clear

   ReDim str_Data(0)

End Sub



Private Sub addData(strName As String, strData As String)

   Dim intCount As Integer

   List1.AddItem (strName) 'Legger til navn (i listeboks)

   intCount = List1.ListCount

   

   'Gjør plass for, og legger inn tilhørende data

   ReDim Preserve str_Data(intCount)

   str_Data(intCount - 1) = strData

End Sub

 

 

 

Klikkeventet for listeboksen blir nå:

 

Private Sub List1_Click()

   If (List1.ListIndex > -1) Then

       Text1.Text = str_Data(List1.ListIndex)

   Else

       MsgBox "Du må har glemt å velge et element i listen"

   End If

End Sub

 

Ikke verdens mest elegante/robuste kode, men den skulle være grei å forstå.

 

Edit: Ser jeg glemte en vesentlig detalj: :oops:

 

Dim str_Data() as string

Lenke til kommentar

Det jeg mente me spm. mitt var:

Om det var en måte jeg kunne adde et spill navn og et serial nr. og så var bare spill navnet synlig i listboxen og når man klikket på et spill i listboxen kom serial nr. til spillet opp i textboxen... er det mulig? Hvis det er det så hvordan?

 

-wacie

Lenke til kommentar

Jeg prøvde den men det kom opp en feil:

 


Den var gul ->Private Sub addData(strName As String, strData As String)

   Dim intCount As Integer

   List1.AddItem (strName) 'Legger til navn (i listeboks)

   intCount = List1.ListCount

   

   'Gjør plass for, og legger inn tilhørende data

 og den var merket ->  ReDim Preserve str_Data(intCount)

   str_Data(intCount - 1) = strData

End Sub

Lenke til kommentar

Helt på toppen i formkoden din.

 

Hvis du har en form som inneholder en tekstboks (Text1) og en listeboks (List1) kan du evt lime inn koden under.

 

 

Dim str_Data() As String



Private Sub Form_Load()

  'Tømmer datastrukturer og legger inn nye data

  clearData

  addData "var1", "data1"

  addData "var2", "data2"

  addData "var3", "data3"



End Sub



Private Sub List1_Click()

   If (List1.ListIndex > -1) Then

       Text1.Text = str_Data(List1.ListIndex)

   Else

       MsgBox "Du må har glemt å velge et element i listen"

   End If

End Sub





Private Sub clearData()

   List1.Clear

   ReDim str_Data(0)

End Sub



Private Sub addData(strName As String, strData As String)

   Dim intCount As Integer

   List1.AddItem (strName) 'Legger til navn (i listeboks)

   intCount = List1.ListCount

   

   'Gjør plass for, og legger inn tilhørende data

   ReDim Preserve str_Data(intCount)

   str_Data(intCount - 1) = strData

End Sub

Lenke til kommentar

Ja, ja men jeg tror du misforstod spm mitt litt...

jeg vil at når du klikker på en knapp så adder du navnet i en InputBox og så adder du serial nr i en annen innputbox

f.eks


Private Sub Command1_Click()

Dim sTmp As String

 sTmp = InputBox("Enter the game's name:")

 stmp2 = InputBox("Enter the serial number:")

 List1.AddItem sTmp + "     =     " + stmp2

End Sub

 

Men det som er galt med den er at den adder serial nr og navnet på spillet i list boxen sånn: spill = serial nr

men det jeg vill er at jeg adder begge deler med en InputBox og så står bare navnet på spilet i listboxen og når man klikker på den så kommer serial nr opp i textboxen under....

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...