在事件发生后更新listview子项文本

时间:2014-12-08 10:47:58

标签: c# winforms listview

我有listview可能会更改事件上的文字,如下所示:

    private void OnEvent(object sender, AutomateConnectionEventArgs e)
    {
        if (aListView.InvokeRequired)
        {
            Invoke(new MethodInvoker(delegate()
            {
                Traitement(e);
            }));
        }
        else
        {
            Traitement(e); 
        }
    }


    private void Traitement(AutomateConnectionEventArgs e)
    {
        ListViewItem item = aListView.FindItemWithText(e.idAutomate);
        if (e.notification.Equals("connect"))
        {
            aListView.Items[item.index].SubItems[5].Text = DateTime.Today.ToShortDateString();

            aListView.Items[item.index].SubItems[7].ForeColor = Color.Green;
            aListView.Items[item.index].SubItems[7].Text = "Connected";
            aListView.Items[item.index].SubItems[8].Text = DateTime.Now.ToLongTimeString();
        }
    }

它没有出现错误,在视觉工作室中使用断点跟随它时,它运行正常,但列表视图无法更改表单中的文本

1 个答案:

答案 0 :(得分:0)

使用新值创建新的ListViewItem对象,并使用新的ListViewItem对象更新旧的ListeviewItem