16. september 2005 - 14:14Der er
13 kommentarer og 1 løsning
ListBox med op og ned function ?
Hejsa,
Jeg er ved at lave en op/ned function på en listbox, men kan ikke helt få det til at spille. Det jeg vil er at liste en række ord i en listbox hvor så en bruger kan rykke et ord op el. ned ved hjælp af nogle knapper. Jeg har lavet følgende som ikke helt virker :
Mine sub's til håndtering af op og ned rykning :
Private Sub btn_MoveUp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_MoveUp.Click '--- Flytter op MoveUp(ListBox1) End Sub
Private Sub btn_MoveDown_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_MoveDown.Click '--- Flytter ned MoveDown(ListBox1) End Sub
Mine sub's der så skulle flytte enten op eller ned :
Private Sub MoveDown(ByVal listBox As ListBox) If listBox Is Nothing Then Throw New ArgumentNullException("listBox") End If Dim item As ListItem = listBox.SelectedItem If Not (item Is Nothing) Then Dim idx As Integer = listBox.SelectedIndex If idx < listBox.Items.Count - 1 Then listBox.Items.RemoveAt(idx) listBox.Items.Insert(idx, item) End If End If End Sub
Private Sub MoveUp(ByVal listBox As ListBox) If listBox Is Nothing Then Throw New ArgumentNullException("listBox") End If Dim item As ListItem = listBox.SelectedItem If Not (item Is Nothing) Then Dim idx As Integer = listBox.SelectedIndex If idx > 0 Then listBox.Items.RemoveAt(idx) listBox.Items.Insert(idx, item) End If End If End Sub
Jeg ved ikke helt hvad jeg mangler for at det virker, men måske en kan hjælpe mig med det ?
det skal du gøre i dine subs. (Jeg er C#-bruger så kig lige syntaxen igennem inden du copy-paster :)) MoveDown-metoden: If listbox.SelectedIndex != listbox.Items.Count Then Dim index AS Integer = listbox.SelectedIndex; Dim texttemp AS String = listbox.Items[index+1].Text; Dim valuetemp AS String = listbox.Items[index+1].Value; listbox.Items[index+1].Text = listbox.Items[index].Text; listbox.Items[index+1].Value = listbox.Items[index].Value; listbox.Items[index].Text = texttemp; listbox.Items[index].Value = valuetemp; lstUndergrupper.SelectedIndex = index+1; End If
Det der sker er at det item der er selected får skiftet sin værdi og text om med den der ligger nedenunder i listen. De bytter plads og det ser ud som om man flytter den et skridt ned i listen.
Det er samme princip for MoveUp, bare index-1 i stedet for +1.
ej for hulen - det lader til at han er startet hos ms, og ikke har fået godkendelse til at have den slags online :o( (måska kan du finde dem et andet sted). mvh
Jeg har i mellemtiden fået det til at virke både op og ned og fra en listbox til en anden så jeg håber jeg klare mig for denne gang, men ellers tak for info ;o)
ok...godt du fik det til at virke, jeg fik lige pludselig meget travlt der i fredags. lstUndergrupper er ikke noget du skal bruge, det er fordi jegh ar copy-pastet fra noget af min egen kode.
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.