C# 如何在单个windows窗体的多个ListView中使用选定的索引更改事件?

C# 如何在单个windows窗体的多个ListView中使用选定的索引更改事件?,c#,listview,selectedindexchanged,listview-selector,C#,Listview,Selectedindexchanged,Listview Selector,我正在使用一个简单的地址簿,在这个地址簿中,我在一个窗口表单上有公司和个人的单独列表。当我从第一个列表视图中选择一个项目时,它会显示第二个列表中项目的值。我是编程语言的初学者。我还有一个列表和一个xml文件来保存两个列表视图的联系人。有人能帮我吗。。。?提前准备好。 我在所选索引更改事件中有此代码 try { textBox1.Text = contacts[listView1.SelectedItems[0].Index].FullName; textBox

我正在使用一个简单的地址簿,在这个地址簿中,我在一个窗口表单上有公司和个人的单独列表。当我从第一个列表视图中选择一个项目时,它会显示第二个列表中项目的值。我是编程语言的初学者。我还有一个列表和一个xml文件来保存两个列表视图的联系人。有人能帮我吗。。。?提前准备好。 我在所选索引更改事件中有此代码

  try
  {
       textBox1.Text = contacts[listView1.SelectedItems[0].Index].FullName;
       textBox2.Text = contacts[listView1.SelectedItems[0].Index].Address1;
       textBox3.Text = contacts[listView1.SelectedItems[0].Index].Address2;                    
       textBox5.Text = contacts[listView1.SelectedItems[0].Index].Phone1;
       textBox6.Text = contacts[listView1.SelectedItems[0].Index].Phone2;
       textBox7.Text = contacts[listView1.SelectedItems[0].Index].Phone3;
       textBox8.Text = contacts[listView1.SelectedItems[0].Index].Email;
       textBox11.Text = contacts[listView1.SelectedItems[0].Index].Website;

   }
   catch { }
其他名单上有广告吗

    textBox1.Text = contacts[listView2.SelectedItems[0].Index].FullName;                
     textBox3.Text = contacts[listView2.SelectedItems[0].Index].Address2;
     textBox4.Text = contacts[listView2.SelectedItems[0].Index].MailingAddress;
     textBox5.Text = contacts[listView2.SelectedItems[0].Index].Phone1;                
     textBox8.Text = contacts[listView2.SelectedItems[0].Index].Email;
     textBox11.Text = contacts[listView2.SelectedItems[0].Index].Website;
     textBox9.Text = contacts[listView2.SelectedItems[0].Index].ContactPerson;
     textBox10.Text = contacts[listView2.SelectedItems[0].Index].ContactPhone;

请不要笑,我只是个初学者:

两个代码都来自同一个联系人数组。。您正在通过索引访问的。。并键入所选listviewitem的索引。这意味着,当您在listview1中选择第一项时,您将得到一个零的索引。。当您选择listview2中的第一项时,您将得到一个索引为零。。有效地为您提供相同的联系人元素

我建议在将每个listviewitem填充到它所表示的联系人时设置其.Tag属性,例如listviewitem item=listview1.items.addcontacts[index].FullName;item.Tag=联系人[索引]


然后,您可以在selecteditemchanged事件中通过引用请求联系人:contact contact=listview1。selectedItems[0]。标记

这不是因为您正在覆盖文本框1、3、4、5、8、11、9和10中的值吗?空的catch{}可能会成为一种后遗症。您可能需要打开MessageBox。在调试时在那里显示一条消息,这样您就可以了解到任何未预料到的问题。