c# – 将文本附加到列表框中的一行

有没有办法将文本追加到ListBox的最后一行?我希望列表看起来像这样:

processing file 1...  OK
processing file 2...  CRC error
processing file 3...  OK

当我打开文件进行处理时,我会用ListBox.Add(“处理文件x”)写“处理文件x”.完成处理后,在继续下一个文件之前,我想附加处理结果.

我可以等到处理完成,然后立即写入整行,但处理文件可能需要10-15秒,这会使UI看起来没有响应.

一个解决方案还允许我附加文本(如完成%)或其他东西,以使UI在处理时更加活跃.我更喜欢使用ListBox,因为它的滚动和行选择属性,如果可能的话.

我找不到任何方法可以做到这一点;任何想法都会受到欢迎.

最佳答案 您可以直接将项目添加到列表框中

 listBox1.Items.Add("new item");

你可能需要刷新它

listBox1.Refresh(); 

编辑:

如果要更新最后一项,则需要删除最后一项,然后重新添加

var lastItem= listBox1.Items[listBox1.Items.Count-1];
lastItem += results;
listBox1.Items.RemoveAt(listBox1.Items.Count-1);
listBox1.Add(lastItem);
点赞