winforms 中的 C# listview 不显示添加的项目

标签 c# winforms listview

我试图从 C# 中的打开文件对话框中选择一个目录,但是当我实际将项目添加到 ListView 时,它没有显示。到目前为止,这是我的代码……我是否遗漏了什么?

private void btnChoose_Click(object sender, EventArgs e)
    {
        try
        {
            FolderBrowserDialog folderPicker = new FolderBrowserDialog();
            listLeft.View = View.Details;
            if (folderPicker.ShowDialog() == DialogResult.OK)
            {
                DirectoryInfo di = new DirectoryInfo(folderPicker.SelectedPath);
                FileInfo[] files = di.GetFiles();
                DirectoryInfo[] directories = di.GetDirectories();

                foreach (DirectoryInfo directory in directories)
                {
                    listLeft.Items.Add("Directory " + directory.Name);
                }
                foreach (FileInfo file in files)
                {
                    listLeft.Items.Add(file.Name);
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("An error occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

编辑::: 添加了带有说明的屏幕截图... enter image description here

最佳答案

我假设 listLeft 是您的 ListView。您需要像这样添加子项:

            foreach (DirectoryInfo directory in directories)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.SubItems.Add("Directory " + directory.Name);
                listLeft.Items.Add(lvi);
            }
            foreach (FileInfo file in files)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.SubItems.Add(file.Name);
                listLeft.Items.Add(lvi);
            }

编辑:试试这个:

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        listLeft.Columns.Add(new ColumnHeader());
        FolderBrowserDialog folderPicker = new FolderBrowserDialog();
        listLeft.View = View.Details;
        if (folderPicker.ShowDialog() == DialogResult.OK)
        {
            DirectoryInfo di = new DirectoryInfo(folderPicker.SelectedPath);
            FileInfo[] files = di.GetFiles();
            DirectoryInfo[] directories = di.GetDirectories();

            foreach (DirectoryInfo directory in directories)
            {
                listLeft.Items.Add("Directory " + directory.Name);
            }
            foreach (FileInfo file in files)
            {
                listLeft.Items.Add(file.Name);
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show("An error occurred: " + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

关于winforms 中的 C# listview 不显示添加的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18810607/

相关文章:

java - 我如何使用从 TextView 中的 firebaseDB 检索到的标签解析 HTML 文本?无网页 View

c# - 如何使用 entityframework 6 with mono 和 sqlite 进行 C# 跨平台开发?

c# - 无法使用动态 linq 两次检查同一属性

c# - 访问具有可变键名的 JSON 项

c# - 将 List 初始化为静态方法

c# - 如何创建打开表单的自定义 PropertyGrid 编辑器项目?

c# - 当 Application.Run() 发生异常时,您有什么选择?

java - Android Activity 在移除时监听 fragment

javascript - SignalR 新手,有没有一种方法可以在用户执行操作时向其他人广播,而不仅仅是在他们开始和结束时?

Android ListView 在数据下载之前加载 - 必须重新启动 View