在多线程中,用foreach对listviewItem 遍历的时候,可以采用以下方法对subItmes赋值。
/// <summary>
/// listview 的subItem 赋值
/// </summary>
/// <param name="lst">listView</param>
/// <param name="index">items index</param>
/// <param name="str1"></param>
/// <param name="str2"></param>
/// <param name="str3"></param>
delegate void teststring(ListView lst, int index, string str1, string str2, string str3);
public void addstring(ListView lst, int index, string str1, string str2, string str3)
{
lst.Items[index].SubItems[1].Text = str1;
lst.Items[index].SubItems[2].Text = str2;
lst.Items[index].SubItems[3].Text = str3;
}
public void invokestring(ListView lst, int index, string str1, string str2, string str3)
{
if (lst.InvokeRequired)
{
teststring test = addstring;
this.BeginInvoke(test,new object[]{lst, index, str1, str2, str3});
}
else
{
addstring(lst, index, str1, str2, str3);
}
}