Прежде всего, вы нигде не устанавливаете _imageIndex, кроме как в btnPrevious_Click, где вы устанавливаете его на 0.
Вам необходимо установить его на выбранный индекс в методе SelectedIndexChanged, как это (обратите внимание напоследняя строка добавлена в ваш предыдущий код):
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//FOR i is less than the first image.
for (int i = 0; i < listView1.SelectedItems.Count; i++)
{
//GET filename from listview and store in index.
_big_fileName = listView1.SelectedItems[i].Text;
//Create larger instance of image.
pictureBox1.Image = Image.FromFile(_big_fileName);
//Fill panel to the width and height of picture box.
panel1.AutoScrollMinSize = new Size(pictureBox1.Image.Width, pictureBox1.Image.Height);
_imageIndex = listView1.SelectedIndices[0];
}
}
Далее, в btnPreviousClick вам нужно внести несколько изменений:
private void btnPrevious_Click(object sender, EventArgs e)
{
if (pictureBox1.Image != null)
{
//IF Image is less than Image list size.
if (_imageIndex >= 0 && _imageIndex < imageList1.Images.Count)
{
//De-select current item
listView1.Items[_imageIndex].Selected = false;
//GO to previous entry.
_imageIndex--;
//Select new item
if(_imageIndex>=0){
listView1.Items[_imageIndex].Selected = true;
listView1.Select();
}
}
}
else
{
MessageBox.Show("No image.");
}
}
Необходимо вызвать метод Select () в listView1.Самой большой проблемой было то, что вы не установили _imageIndex.
Надеюсь, это то, что вы искали:)
С наилучшими пожеланиями,