ListView疑问??
部分代码:
//删除当前DTU的信息记录
public void removeListView(Client client)
{
if (clients.Contains(client.Rtua))
{
clients.Remove(client.Rtua);
listView1.Items.RemoveByKey(client.Rtua);
//listView1.Items.Remove(listView1.Items[client.Rtua]);
}
this.tbClientsNum.Text = System.Convert.ToString(clients.Count);
//client.StopFlag = true;
//client.CurrentSocket.Close();
listView1.Refresh();
ListViewItem lvi = new ListViewItem();
lvi.Tag = client.Rtua;
lvi.Text = client.Rtua;
lvi.SubItems.Add(getIPAddress());
lvi.SubItems.Add(tbSocketPort.Text);
lvi.SubItems.Add(DateTime.Now.ToString());
lvi.SubItems.Add(client.IpAddress);
lvi.SubItems.Add(client.Port);
lvi.SubItems.Add(client.ProtocolType);
lvi.SubItems.Add( "No ");
this.listView1.Items.Add(lvi);
client.StopFlag = true;
client.CurrentSocket.Close();
}
//添加DTU并更新界面状态
public void addListView(Client client)
{
if (clients.Contains(client.Rtua))
{
clients.Remove(client.Rtua);
}
if (listView1.Items.ContainsKey(client.Rtua))
{
//listView1.Items.RemoveByKey(client.Rtua);
listView1.Items.Remove(listView1.Items[client.Rtua]);
}
clients.Add(client.Rtua, client);
ListViewItem lvi = new ListViewItem();
lvi.Tag = client.Rtua;
lvi.Text = client.Rtua;
lvi.SubItems.Add(getIPAddress());
lvi.SubItems.Add(tbSocketPort.Text);
lvi.SubItems.Add(DateTime.Now.ToString());
lvi.SubItems.Add(client.IpAddress);
lvi.SubItems.Add(client.Port);
lvi.SubItems.Add(client.ProtocolType);
lvi.SubItems.Add( "Yes ");
this.listView1.Items.Add(lvi);
this.tbClientsNum.Text = System.Convert.ToString(clients.Count);
}
请问为什么我能把信息添加上listView1,但是删除的时候就是删除不了(界面上仍然显示出来)
是什么问题呢??
THS
[解决办法]
trace一下
[解决办法]
以前遇到过,准确的答案忘记了,不过大概是因为行数组里面删除了,但是列数组里面没有删除;或者列数组里面删除了,但是行数组里面没有删除;
楼主自己看看