Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Copy Listview to Listview

9 views
Skip to first unread message

CaffeineRush

unread,
Sep 2, 2004, 7:04:31 PM9/2/04
to
I have two Listview controls on the stage:
lv_Files
lv_SelectedFiles

I have a function that copies the selected items from lv_Files to
lv_SelectedFiles.
I am currently using a loop on the selected indices to copy. This is quite a
slow process when there are a lot of entries selected in lv_Files.

There is also a Copy All button that first selects all indices, then loops
through lv_Files, individually copying to lv_SelectedFiles.

Is there a method to perform this copy without the loop? Some faster
implementation? I have not been able to find any documention or code
examples for such.


Angel J. Hernández

unread,
Sep 2, 2004, 9:09:22 PM9/2/04
to
Hi there... try this

object[] dest = new object[listBox1.Items.Count];
listBox1.Items.CopyTo(dest, 0);
listBox2.Items.AddRange(dest);

Regards,


--
Angel J. Hernández M.
MCSD

"CaffeineRush" <gran...@swbell.net> escribió en el mensaje
news:3GNZc.16144$R%.6087@newssvr22.news.prodigy.com...

CaffeineRush

unread,
Sep 3, 2004, 12:32:42 AM9/3/04
to

I got the following to compile:

ListViewItem[] dest = new ListViewItem[lv_Files.Items.Count];
// object[] dest = new object[lv_Files.Items.Count];
lv_Files.Items.CopyTo(dest, 0);
lv_SelectedFiles.Items.AddRange(dest);

but get the following System.ArgumentException error in system.windows.forms.dll:

Additional information: Cannot add or insert the item 'filename.jpg' in more than one place. You must first remove it from its current location or clone it.

Any ideas? Thanks!

"Angel J. Hernández" <angelj...@hotmail.com> wrote in message news:u5wbqKVk...@tk2msftngp13.phx.gbl...

Marcin Grzębski

unread,
Sep 3, 2004, 3:52:54 AM9/3/04
to
Hi,

I believe that "listBox2.Items.AddRange(...)" is key for
your performance goal.

And i think that loop (with "Clone()" of items) over your
"listBox1.SelectedItems" should be solution.

Cheers!

Marcin

> I got the following to compile:
>
> ListViewItem[] dest = new ListViewItem[lv_Files.Items.Count];
> // object[] dest = new object[lv_Files.Items.Count];
> lv_Files.Items.CopyTo(dest, 0);
> lv_SelectedFiles.Items.AddRange(dest);
>
> but get the following System.ArgumentException error in
> system.windows.forms.dll:
>
> Additional information: Cannot add or insert the item 'filename.jpg' in
> more than one place. You must first remove it from its current location
> or clone it.
>
> Any ideas? Thanks!
>
> "Angel J. Hernández" <angelj...@hotmail.com

> <mailto:angelj...@hotmail.com>> wrote in message

> news:u5wbqKVk...@tk2msftngp13.phx.gbl...
> > Hi there... try this
> >
> > object[] dest = new object[listBox1.Items.Count];
> > listBox1.Items.CopyTo(dest, 0);
> > listBox2.Items.AddRange(dest);
> >
> > Regards,
> >
> >
> > --
> > Angel J. Hernández M.
> > MCSD
> >
> >
> >

> > "CaffeineRush" <gran...@swbell.net <mailto:gran...@swbell.net>>

0 new messages