[英]C# windows forms listbox selected index changed event fires on form load and button click
[英]how to use selected index changed event in multiple listviews in single windows form?
我正在使用一个简单的通讯录,在该通讯录中,我在一个窗口中单独列出了公司和人员的清单。 我从第一个列表视图中选择一个项目时出现问题,它显示了第二个列表中的项目值。我是编程语言的初学者。 我也有一个列表和一个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;
(请别笑,我只是一个初学者:)
好吧,这两个代码都是从同一个contact数组中提取的。您正在通过INDEX ..访问该数组,并将其键入到selected listviewitem
的INDEX中。 这意味着,当您选择listview1中的第一项时,您将获得index of ZERO
。而当您选择listview2中的第一项时,您将获得index of ZERO
。.有效地给您相同的联系人元素。
我建议设置。 Tag property of each listviewitem
填充到它代表的联系人时, Tag property of each listviewitem
(例如listviewitem item = listview1.items.add(contacts[index].FullName; item.Tag = contacts[index];
)
然后,您可以在您的selecteditemmchanged事件中通过引用来请求联系人: contact contact = listview1.selectedItems[0].Tag;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.