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

标签 c# listbox

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

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

当我打开文件进行处理时,我会用 ListBox.Add("processing file x") 编写“processing file 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);

关于c# - 将文本附加到列表框中的一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37170596/

相关文章:

c# - 减小大图像尺寸的最安全方法

C# 使用脚本创建数据库

c# - NotifyIcon 显示来自程序的消息

.net - Windows.Forms.ListBox 中的项目右对齐

c# - 如何将图片框绘制到列表框中

带有只读/禁用项的 WinForms ListBox

c# - 允许选定子对象的 Unity 自定义检查器

c# - 如何在 Visual Studio 中设置条件断点?

c# - 列表框中的 Foreach 语句

c# - 如何隐藏ListView ColumnHeader?