以编程方式选择列表视图项不工作
本文关键字:工作 视图 列表 编程 方式 选择 | 更新日期: 2023-09-27 18:03:20
我在Windows窗体应用程序中有一个方法,PaymentInfo,在listView填充后从listView1
的子项填充标签:
internal void PaymentInfo()
{
label3.Text = "Amount Paid: " + listView1.SelectedItems[0].SubItems[1].Text.ToString();
label3.Refresh();
label6.Text = "Payment Type: " + listView1.SelectedItems[0].SubItems[5].Text.ToString();
label6.Refresh();
}
当listView1
被填充时,我尝试使用以下方法调用该方法:
listView1.Items[0].Selected = true;
listView1.Items[0].Focused = true;
PaymentInfo();
这有效地选择了列表中的第一个项目,但是当它尝试运行PaymentInfo时,我在开始label3.Text
的行中得到ArgumentOutOfRangeException
,详细信息为
"InvalidArgument= '0'的值对'index'无效。"
我也用listView1_MouseClick
调用PaymentInfo,它工作得很好。我检查了其他一些事情,并注意到,即使我以编程方式选择项目,SelectedItems.Count
返回0
。为什么会这样?谢谢!
不确定确切原因,但唯一可行的方法是将代码放在Load事件中。
private void PastPayment_Load(object sender, EventArgs e)
{
listView1.Items[0].Selected = true;
listView1.Items[0].Focused = true;
PaymentInfo();
PopDetails();
this.listView1.SelectedIndexChanged += listView1_SelectedIndexChanged;
}