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.
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...
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!
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>>