代码如下
private int UpdateConnectionView()
{
try
{
ArrayList alSeletedTag = new ArrayList();
foreach(ListViewItem item in ConnectionReport.SelectedItems)
{
alSeletedTag.Add(item.Tag);
}
ConnectionReport.Items.Clear();
foreach(ConnectionRecorder recorder in m_list)
{
ListViewItem item = new ListViewItem(recorder.Channel.ToString("X"));
item.SubItems.Add(recorder.IP);
item.SubItems.Add(recorder.ConnectTime.ToString());
item.SubItems.Add(recorder.ReceivedCount.ToString());
item.Tag = recorder.Channel;
item.Selected = alSeletedTag.Contains(item.Tag);
ConnectionReport.Items.Add(item);
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
return 0;
}
然后用定时器定期调用该函数刷新图示.
如果定时器的时间间隔设的过小,ListView会经常出现选不中的现象,为什么?(鼠标按上去就选中了,一一松开鼠标键该项的选中状态就没了,为什么?)