private void SetListView(string msg, string submsg) { if (this.lvSolutions.InvokeRequired)//如果调用控件的线程和创建创建控件的线程不是同一个则为True { while (!this.lvSolutions.IsHandleCreated) { //解决窗体关闭时出现“访问已释放句柄“的异常 if (this.lvSolutions.Disposing || this.lvSolutions.IsDisposed) { return; } } SetListViewCallback d = new SetListViewCallback(SetListView); this.lvSolutions.Invoke(d, new object[] { msg, submsg }); } else { this.lvSolutions.BeginUpdate(); ListViewItem lvi = new ListViewItem(); lvi.Text = DateTime.Now.ToString("HH:mm:ss:fff"); lvi.SubItems.Add(msg); lvi.SubItems.Add(submsg); this.lvSolutions.Items.Add(lvi); //总是显示最后一行 this.lvSolutions.Items[this.lvSolutions.Items.Count - 1].EnsureVisible(); this.lvSolutions.EndUpdate(); //结束数据处理,UI界面一次性绘制。 } }
private void SetImage(int itemInList, int imgId) { if (computerListView.InvokeRequired) { SetListViewCallback d = new SetListViewCallback(SetImage); Invoke(d, new object[] { itemInList, imgId }); return; } computerListView.Items[itemInList].ImageIndex = imgId; }
private void populateDataSafe(User u) { if (listView.InvokeRequired) { SetListViewCallback d = new SetListViewCallback(populateDataSafe); listView.Invoke(d, new object[] { u }); } else { ListViewItem row = new ListViewItem(u.UserName); row.Tag = u; listView.Items.Add(row); } }
public static void AddToListView(Form form, Control ctrl, ListViewItem trans) { if (ctrl.InvokeRequired) { SetListViewCallback d = new SetListViewCallback(AddToListView); form.Invoke(d, new object[] { form, ctrl, trans }); } else { if (ctrl is ListView) { ((ListView)ctrl).Items.Add(trans); } } }