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问题之前,它已经成功地显示了项目)现在不再显示项目了

listview在使用委托时不添加项目

请改用display_connected_Devices.Items.Clear();。因为display_connected_Devices.Clear();会像您注意到的那样清除列。