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