У вас есть необработанное исключение в обработчике событий.
Обычно необработанное исключение приводит к сбою отладчика и сообщению о том, что не так. Но в событии ListView.SelectedIndexChanged
есть ошибка, из-за которой ваша программа просто сразу обработает sh.
Исключение состоит в том, что при выборе элемента другой вы получаете 2 события:
Сначала вы получаете событие, которое уведомляет вас о том, что НЕТ элемента выбрано
Затем вы получаете событие, которое уведомляет вас о том, что новый элемент выбран.
В первом событии Если выбран элемент НЕТ, список lvProduse.SelectedItems
будет пустым. Поэтому при доступе к элементу 0 будет выброшено.
Необходимо проверить, выбран ли элемент вообще, отметив lvProduse.SelectedItems.Any()
(или, возможно, lvProduse.SelectedItems.Count != 0
, сейчас я не уверен, поддерживает ли этот список LINQ) например.