我试图从 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);
}
}
编辑::: 添加了带有说明的屏幕截图...
最佳答案
我假设 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/