【问题标题】:How do I loop through specific subitems of a ListView?如何遍历 ListView 的特定子项?
【发布时间】:2011-01-31 09:01:29
【问题描述】:

我正在制作一个使用 ListView 来查看所选目录中的目录和文件的程序。 ListView 本身有两列并设置为详细信息视图。这两列是文件夹名称(从按钮中选择的目录)和电影名称(将在 ListView 上列出所选目录中的所有电影)。

我希望 ListView 做的是在将文件夹添加到 ListView 之后,应隐藏子项,直到单击左侧列(选定目录)。

我曾尝试循环遍历 ListView 的子项,但问题是它不仅会打印出目录中的所有文件和文件夹,还会循环遍历并打印出目录名称。

对于那些想查看代码和项目的人,我在下面提供了下载链接。

http://www8.zippyshare.com/v/75161785/file.html

这也是我的代码的一部分,用于显示目录中的文件和文件夹数组,正如您所看到的,我的问题是它还循环通过我希望它只显示一次的项目。

        for (int i = 0; i < jointArray.Length; i++)
        {
                ListViewItem item = new ListViewItem(fi.Name);
                item.SubItems.Add(jointArray[i]);
                listView1.Items.Add(item);
        }

【问题讨论】:

  • 请出示您的代码
  • IMO 听起来更像一棵树而不是列表视图...
  • 我同意 digEmAll。如果您将其实现为两个控件,一个 TreeView 和一个 ListView(如 Windows 资源管理器),您的问题将得到解决。对于用户来说,它也可能是一个更直观的界面。
  • 谢谢,我会看看 TreeViews
  • 看了一下树视图,不认为那是我需要的,所以我提供了我的整个项目。这是代码和项目:www8.zippyshare.com/v/75161785/file.html

标签: c# winforms listview for-loop listviewitem


【解决方案1】:

看起来您需要一个 TreeControl,每个目录在您单击之前都处于折叠状态(很像 Windows 资源管理器)。

然后您可以递归查看所有文件夹和文件并将它们添加到树视图中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多