[尝试从列表视图更改所选项目时程序崩溃

问题描述 投票:0回答:1

所以,我有一个列表视图和其中的一些项目。我将所选项目的引用保留在变量中,但是如果更改所选项目,则程序将崩溃。

   private void listView1_SelectedIndexChanged(object sender, System.EventArgs e)
        {
            var prod = (Produs)lvProduse.SelectedItems[0].Tag;
            tb1.Text = prod.Denumire;
            tb2.Text = prod.Pret.ToString();
            tb3.Text = prod.Cantitate.ToString();

        }

我想这是我的问题((Produs)lvProduse.SelectedItems [0] .Tag;。对于第一个项目,我选择的程序运行正常,但是如果尝试更改选择,则会出现System.ArgumentOutOfRangeException错误。

c# windows-forms-designer
1个回答
0
投票

您在事件处理程序中有未处理的异常。

通常,未处理的异常会导致调试器中断并告诉您出了什么问题。但是ListView.SelectedIndexChanged事件有一个错误,您的程序将完全崩溃。

例外是因为当您选择不同项时,会收到两个事件:

首先,您收到一个通知您未选择任何项目的事件

然后,您会收到一个事件,通知您已选择了新项目。

在第一个事件中,当选择否项目时,lvProduse.SelectedItems列表将为空。因此,访问元素0将抛出异常。

例如,您必须通过选中lvProduse.SelectedItems.Any()来检查是否选中了一个项目。

© www.soinside.com 2019 - 2024. All rights reserved.