listview在使用委托时不添加项目
本文关键字:添加 项目 listview | 更新日期: 2023-09-27 18:26:30
使用一个工作线程,我正在向ListView添加项,但为了做到这一点,我实现了一个委托,其形式如下代码示例所示。
问题:
执行ListView.Items.add()行时,不会向ListView 添加任何内容
我尝试过的:
我添加了一个按钮,当单击时,它成功地将ListViewItem添加到ListView对象中,这是应该的。(这是在工作线程启动之前,用于测试/调试)
我也尝试过将ListView交换为RichEdit,以防代码中出现错误,但项目成功地显示在RichEdit中,因此我添加了另一个ListView,以防第一个/前一个出现错误,并且在没有重命名ListView的情况下,我尝试添加项目,但没有成功。
代理中发生的情况:
Nothing,在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问题之前,它已经成功地显示了项目)现在不再显示项目了
请改用display_connected_Devices.Items.Clear();
。因为display_connected_Devices.Clear();
会像您注意到的那样清除列。