Hi,
I have a Listviewloaded withthumbnail images using background thread.It loads all the images from the directory.But when I select the image fromthe Listview to display into the user control, it won't display the correct image. It looks like the SelectedIndex problem. SelectedIndex doesn't work with first two images. What could be the problem? Thanks for any help.
string
[] files = System.IO.Directory.GetFiles(ImageFolder);
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
try{
int progress = 0;
string pname;
Image myImage;
// max_length = files.Length - 2;
for (i = 0; i < files.Length; i++)
{
ProgressInfo info = new ProgressInfo();
pname = System.IO.Path.GetFullPath(files[i]);
myImage = Image.FromFile(pname);
info.Image = myImage;
info.ImageIndex = i;
backgroundWorker1.ReportProgress(progress, info);
myImage = null;
}
}
catch (Exception ex)
{
throw ex.InnerException;
}
}
private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
try
{
//Get image.
ProgressInfo img = e.UserState as ProgressInfo;
ImgListView.Images.Add(getThumbnaiImage(ImgListView.ImageSize.Width, img.Image));
fname = System.IO.Path.GetFileName(files[img.ImageIndex]);
ListViewItem lvwItem = new ListViewItem(fname, img.ImageIndex);
lvwItem.Tag = files[i];
lstThumbNailView.Items.AddRange(new ListViewItem[] { lvwItem });
}
catch (Exception ex)
{
throw ex.InnerException;
}
}
private void listView_SelectedIndexChanged(Object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection selectedItems = lstThumbNailView.SelectedItems;
ListViewItem lvi = lstThumbNailView.SelectedItems[0];
string s = (string)lvi.Tag;
this.viewer1.Image = Image.FromFile(s);
}