Avatar billede kim.j. Nybegynder
29. november 2003 - 18:30 Der er 5 kommentarer og
1 løsning

Hjælp med RemoveItem

Hej fra en Nybegynder

Jeg har et problem med at jeg har lavet 10 Checkboxe der overføre værdier fra 1 til 10 til en listbox.Nu er mit problem så,hvis jeg sætter Checkboxene til Unchecked vil jeg gerne have at værdien bliver fjernet fra listboxen igen.Jeg har lavet følgende kode i hver Checkbox.
Private Sub Check1_Click()
If Check1.Value = 1 Then
    List1.AddItem 1
  Else
    List1.RemoveItem.Index 1
End If
End Sub
Det virker ikke helt som jeg havde håbet ;-)
Kan en af jer hjælpe mig?

M.V.H. Kim
Avatar billede joern Nybegynder
29. november 2003 - 18:42 #1
Hej.

Problemet er at index skifter når du fjerner f.eks. item 2.  Så rykker de øvrige en plads op.
Kan du ikke lade listeboksen have værdierne 0 eller 1 efter om chekboksen er sat eller ej?  Så er der altid 10 værdier.

Der findes andre løsninger, men tlnk lige over denne simple.

M.v.h.  Jørn
Avatar billede kim.j. Nybegynder
29. november 2003 - 18:54 #2
Hej Jørn

Jeg har brug for at når jeg har sat 4 Chekboxe til vbChecked og så sætter den til vbUnchecked,så fjerner den værdien fra listboxen.Har haft den til at fjerne værdier fra boxen,men det er desværre kun den sidste der er sat ind i feltet den fjerner og ikke den som den skal...

M.V.H.  Kim
Avatar billede joern Nybegynder
29. november 2003 - 19:59 #3
Hej igen.

Jeg ved ikke hvad formålet er med at en listeboks skal indeholde værdier fra tjekbokse.  Selve det lyder for mig som lidt molboagtigt.  Idéen med tjekbokse er at en kommando udføres forskelligt efter om en tjekboks er markeret eller ikke er markeret.  Hvorfor så skrive værdien til en anden kontrol, hvor det er meget vanskeligere at få fat i den relevante igen?

Men ønsker du virkelig noget sådant udført, så må du knytte et yderligere indeks til hver post i listeboksen, nemlig det indeks som tjekboksen har.
Derved vil du kunne identificere det rigtige 1-tal, ligegyldigt hvilket listindekx, det har.  Men som sagt, det virker total, codyl mærkeligt, det du har gang i.  Se om andre har lyst til at skrive kodeeksempler.  Læs om arrays i hjælpen, det er også en vej.

M.v.h.  Jørn
Avatar billede kim.j. Nybegynder
29. november 2003 - 20:16 #4
Jamen Så tak Jørn!Det kan godt være at det er lidt molbo agtigt"men hvad ved jeg",man skal jo starte et sted...

M.V.H. Kim
Avatar billede joern Nybegynder
29. november 2003 - 21:09 #5
Hej Kim.

Altså.  Er det bare en øvelse?  Eller skal det bruges til noget?

Jeg har lavet et eksempel med 5 tjekbokse der skriver deres eget index til en list, når de sætter aktive.

Dim a As Integer

Private Sub Check1_Click(Index As Integer)
  If Check1(Index).Value = 1 Then
        List1.AddItem Check1(Index).Index
      Else
        If List1.ListCount = 0 Then Exit Sub
        For a = 0 To List1.ListCount - 1
          List1.ListIndex = a
          If List1.Text = Check1(Index).Index Then
              List1.RemoveItem a
              Exit Sub
          End If
        Next a
  End If
End Sub

Det virker hos mig.
Avatar billede kim.j. Nybegynder
29. november 2003 - 22:07 #6
Hej Jørn

Alt er bare øvelse for mig her i starten,Jeg har kun leget med VB i 3 uger nu og prøver så godt jeg kan at lavet nogle projekter jeg har sat mig i hovdet.
Men forhåbentlig bliver jeg bedre en dag.
Du skal i hvert tilfælde have tak "Det Virkede"...

M.V.H.  Kim
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester