已删除的条目不会在 C# 中的列表框控件中更新

Deleted entries are not updated in the Listbox control in C#

我在 Windows 表单中有一个 listbox 控件,用于显示来自连接的串行设备的通信响应。当我想清除 listbox(称为 Listbox1)中的条目时,我使用以下代码:

Listbox1.Items.Clear();

然而,尽管上面的代码在删除前 8 个响应的条目方面似乎完美无缺,但调用上面的代码无法删除 Listbox1 中的后续条目。更奇怪的是Listbox1.Items.Count returns 1 每次在Listbox1中输入新的一行代码,即使我可以在[=14=中看到以前的条目],所以如果我尝试使用 Listbox1.SetSelected(1, true);,我会收到以下错误消息:

InvalidArgument=Value of '1' is not valid for 'index'

这意味着 Listbox1 中只有 1 个项目,尽管我可以很清楚地看到 Listbox1 中的 2 个项目(应该删除的旧条目和更新的条目)。

请告知这里可能出了什么问题。为什么在调用Listbox1.Items.Clear()后,Listbox1中仍然有条目?如何删除 Listbox1 中的所有条目而不看到上一个响应留下的任何杂散项目?

找到解决方案 - 串行设备需要更长的时间间隔来响应某些命令(相对于其他命令),因此必须使用可变时间(某些命令的延迟时间更长,而其他命令的延迟时间更短)。使用类似的短延迟时间(100 毫秒)导致接收到的数据包拥塞,并导致一些条目被中继到 Listbox1,即使在 Listbox1.Items.Clear(); 命令被调用(并且应该执行)之后,导致流浪(应该是 'deleted')要在 Listbox1.

中输入的回复