J'ai une liste de visualisation et de chargement des images miniatures. Je voudrais sélectionner l'image miniature pour afficher l'image réelle dans le contrôle de l'utilisateur. Lorsque je sélectionne la première image, elle n'apparaît pas dans le contrôle utilisateur. Mais quand je sélectionne la 3ème image ça marche bien. Quel est le problème avec le code suivant?Listview SelectedIndexChanged problème
string pname;
Image myImage;
for (i = 0; i <= files.Length ; i++)
{
pname = System.IO.Path.GetFullPath(files[i]);
myImage = Image.FromFile(pname);
ImgListView.Images.Add(getThumbnaiImage(ImgListView.ImageSize.Width, myImage));
myImage = null;
}
for (i = 0; i <= files.Length ; i++)
{
fname = System.IO.Path.GetFileName(files[i]);
ListViewItem lvwItem = new ListViewItem(fname, i);
lvwItem.Tag = files[i];
lstThumbNailView.Items.AddRange(new ListViewItem[] { lvwItem });
lvwItem = null;
}
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);
}
Est-ce ASP.NET, Winforms ou WPF? –
Votre code devrait réellement lancer une exception IndexOutOfRangeException dans votre boucle, comme votre condition est (i <= files.Length) au lieu de (i
Utilisation de Winforms. –