0

我正在使用一个简单的地址簿,其中我在单个窗口表单上为公司和个人提供了单独的列表。当我从第一个列表视图中选择一个项目时,我遇到了一个问题,它显示了第二个列表中项目的值..我是编程语言的初学者。我还有一个列表和一个 xml 文件来保存两个列表视图的联系人。some1 可以帮助我吗...?提前谢谢。我在 Selected index changed 事件中有此代码

  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;

(请不要笑我只是一个初学者:))

4

1 回答 1

0

好吧,这两个代码都是从同一个联系人数组中提取的。您正在通过 INDEX 访问它。并键入selected listviewitem. 这意味着当您选择 listview1 中的第一个项目时,您将获得一个index of ZERO..,而当您选择 listview2 中的第一个项目时,您将获得一个index of ZERO.. 有效地为您提供相同的联系人元素。

我建议设置 . Tag property of each listviewitem当您将其填充到它所代表的联系人时(例如 listviewitem item = listview1.items.add(contacts[index].FullName; item.Tag = contacts[index];

然后您可以在您的 selecteditemchanged 事件中通过引用请求联系人: contact contact = listview1.selectedItems[0].Tag;

于 2011-11-04T20:33:59.550 回答