[英]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.