[英]C# listview in winforms not displaying added items
I am trying to select a directory from an open file dialog in C# but when I actually add the items to the List View, it is not being displayed. 我试图从C#中的打开文件对话框中选择一个目录,但是当我实际将项目添加到列表视图时,它没有显示。 THis is my code so far... am I missing something?
到目前为止,这是我的代码......我错过了什么吗?
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);
}
}
EDIT::: Added this screenshot with descriptions... 编辑:::添加此截图和说明...
I'm assuming that listLeft is your ListView. 我假设listLeft是你的ListView。 You need to add subitems like this:
你需要添加这样的子项:
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);
}
EDIT: Try this: 编辑:试试这个:
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);
}
}
It should be adding to the listbox - if there are objects in the directories and files objects... try setting a breakpoint in each method and seeing what happens. 它应该添加到列表框中 - 如果目录和文件对象中有对象...尝试在每个方法中设置断点并查看发生的情况。 If the breakpoints aren't triggered then something is wrong with your Get() methods...
如果未触发断点,则Get()方法出现问题......
your question states 'listview in winforms'. 你的问题陈述了'winforms'列表视图。
But a System.Windows.Forms.ListBox does not have View property, so your line of code 但是System.Windows.Forms.ListBox没有View属性,所以你的代码行
listLeft.View = View.Details;
does not compile when I try to reproduce. 我尝试重现时不编译。
Are you perhaps referring to a WPF listbox instead? 您是指代WPF列表框吗? In that case, can you show us more code, in particular your data binding?
在这种情况下,您能告诉我们更多代码,特别是您的数据绑定吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.