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

时间:2015-12-12 21:30:02

标签: c# .net listview

使用工作线程,我将项目添加到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问题之前已成功显示项目)现在不再显示项目。

1 个答案:

答案 0 :(得分:1)

请改用display_connected_Devices.Items.Clear();。因为display_connected_Devices.Clear();会清除,就像你注意到的那样,列也是如此。