Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 138
  • Last Modified:

Listbox selections

Hi, I have this listbox1 populated by a database and next to it another empty one (listbox2). Between the two, 2 buttons "-->" & "<--". You guessed it I need those buttons to add and remove items from listbox1 to listbox2. One they have been removed from listbox1, I do not want those values to still be in it, it's really to move items between the two listboxes. What would be code to achieve this ?
Thanks
0
GPSAddict
Asked:
GPSAddict
  • 4
  • 3
2 Solutions
 
Obadiah ChristopherCommented:
Try this code.

Hope it's clear enough for u.
protected void btnAdd_Click(object sender, EventArgs e)
    {
        for (int i = lstFrom.Items.Count - 1; i >= 0; i--)
        {
            if (lstFrom.Items[i].Selected)
            {
                if (lstTo.Items.FindByValue(lstFrom.Items[i].Value) != null)
                {
                    continue;
                }
                else
                {
                    lstTo.Items.Add(lstFrom.Items[i]);
                    lstFrom.Items.Remove(lstFrom.Items[i]);
                }
            }
        }
 
    }
        
 
   
    protected void btnRemove_Click(object sender, EventArgs e)
    {
        try
        {
            for (int i = lstTo.Items.Count - 1; i >= 0; i--)
            {
                if (lstTo.Items[i].Selected)
                {
                    lstFrom.Items.Add(lstTo.Items[i]);
                    lstTo.Items.Remove(lstTo.Items[i]);
                }
            }
        }
        catch (Exception ex)
        {
            throw ex;
        }
    } 

Open in new window

0
 
GPSAddictAuthor Commented:
I'll try, the only problem is I don't know C, I use VB. Thanks
0
 
Obadiah ChristopherCommented:
Well sorry for the same.
But In situations like this use this link

http://www.developerfusion.com/tools/convert/csharp-to-vb/
Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As EventArgs)
    For i As Integer = lstFrom.Items.Count - 1 To 0 Step -1
        If lstFrom.Items(i).Selected Then
            If lstTo.Items.FindByValue(lstFrom.Items(i).Value) IsNot Nothing Then
                Continue For
            Else
                lstTo.Items.Add(lstFrom.Items(i))
                lstFrom.Items.Remove(lstFrom.Items(i))
            End If
        End If
        
    Next
End Sub
 
 
 
Protected Sub btnRemove_Click(ByVal sender As Object, ByVal e As EventArgs)
    Try
        For i As Integer = lstTo.Items.Count - 1 To 0 Step -1
            If lstTo.Items(i).Selected Then
                lstFrom.Items.Add(lstTo.Items(i))
                lstTo.Items.Remove(lstTo.Items(i))
            End If
        Next
    Catch ex As Exception
        Throw ex
    End Try
End Sub

Open in new window

0
Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

 
GPSAddictAuthor Commented:
Alright, let me try this at home and I'll get back to you asap. Thanks !
0
 
GPSAddictAuthor Commented:
2 things if I may, if you do a batch add, it adds the items but in reverse order ie. I select 1,2,3,4 but it adds in this order; 4,3,2,1. Also, when I remove an item from the 2nd listbox, how can I make it so that re-appears where it was before ? Thanks
0
 
GPSAddictAuthor Commented:
Hello ?
0
 
Obadiah ChristopherCommented:
For the add in proper order, this code should work...

For making it to appear where it was, I don't think it might be possible. U'll have to try out some other trick...
Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As EventArgs)
    For i As Integer = 0 To lstFrom.Items.Count - 1
        If lstFrom.Items(i).Selected Then
            If lstTo.Items.FindByValue(lstFrom.Items(i).Value) IsNot Nothing Then
                Continue For
            Else
                lstTo.Items.Add(lstFrom.Items(i))
            End If
        End If
    Next
    
    
    For i As Integer = lstFrom.Items.Count - 1 To 0 Step -1
        If lstFrom.Items(i).Selected Then
            lstFrom.Items.Remove(lstFrom.Items(i))
        End If
        
        
    Next
End Sub

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now