使用工作线程,我将项目添加到ListView,但是为了做到这一点,我在表单中实现了一个委托,如下面的代码示例所示。
问题:
执行ListView.Items.add()行时,没有任何内容添加到ListView
我尝试了什么:
我添加了一个按钮,当单击它时,它成功地将ListViewItem添加到ListView对象,就像它应该的那样。 (这是在工作线程启动之前,用于测试/调试)
我还尝试将ListView交换到RichEdit,以防我在代码中出现错误,但项目成功显示在RichEdit中,因此我添加了另一个ListView,第一个/上一个是错误的,并且没有重命名ListView,我尝试添加项目,但没有成功。
代表会发生什么:
没有,在clear()方法之后,每个带有标题的4列都会消失,并且没有任何内容添加到列表视图中
结论:
我唯一的结论是委托与ListView不兼容,因为我能够将项目添加到RichEdit,但不能添加到ListView。
这是一个错误吗?我做错了吗?
代码示例
void connected_add_device()
{
string[] t = { "123", "-1", "sa.d.sdf.s.fg", "sda-f-sd-fgds-gf" };
if (display_connected_Devices.InvokeRequired)
display_connected_Devices.BeginInvoke((MethodInvoker)delegate ()
{
display_connected_Devices.Clear();
display_connected_Devices.Items.Add(new ListViewItem(t));
}
);
else
{
display_connected_Devices.Clear();
display_connected_Devices.Items.Add(new ListViewItem(t));
}
}
对于它的价值,我有一个糟糕的GIT提交。修复后,此ListView(在GIT问题之前已成功显示项目)现在不再显示项目。
答案 0 :(得分:1)
请改用display_connected_Devices.Items.Clear();
。因为display_connected_Devices.Clear();
会清除,就像你注意到的那样,列也是如此。