我在WinForm的选项卡控件中有一个ListView。首次加载表单时,我可以按预期看到所有标题:
我使用文件的详细信息填充ListView:
string[] fileEntries = Directory.GetFiles(trNode.Tag.ToString(), "*.*", SearchOption.TopDirectoryOnly);
int fileNo = 1;
foreach (string fileName in fileEntries)
{
FileInfo oFileInfo = new FileInfo(fileName);
ListViewItem lvi = new ListViewItem(new string[] { fileNo.ToString(), oFileInfo.Name, oFileInfo.Extension, oFileInfo.Length.ToString(), oFileInfo.CreationTime.ToString() });
lvFiles.Items.Add(lvi);
fileNo++;
}
表单加载后,列标题已消失且没有显示任何项目。
我没有代码可以更改ListView或任何容器的可见性。正如您在加载后可以看到的那样,ListView有一个滚动条,我猜测它不会被隐藏。
欢迎任何建议!
更新
listview Items.Count告诉我listview中有项目。更奇怪的是,如果我将视图更改为SmallIcons,我会看到它们,在详细信息视图中它们会消失!如果我打破代码并查看项目,他们在所有正确的位置使用正确的数据看起来很好!
答案 0 :(得分:14)
这个问题的答案非常令人尴尬!你可能会说一个男生错误。
例程中的一行代码清除了我错过了重要元素的表单。
lvFiles.Clear();
显然清除了包括标题在内的所有内容,我将其更改为lvFiles.Items.Clear();
这是我首先要查找的内容之一,并且无法相信我错过了它。 :(
答案 1 :(得分:1)
这样的事情
string[] fileEntries = Directory.GetFiles(trNode.Tag.ToString(), "*.*", SearchOption.TopDirectoryOnly);
int fileNo = 1;
int ctr = 0
foreach (string fileName in fileEntries)
{
FileInfo oFileInfo = new FileInfo(fileName);
lvFiles.Items.Add(fileNo.ToString());
lvFiles.Items[ctr].SubItems.Add(oFileInfo.Name);
lvFiles.Items[ctr].SubItems.Add(oFileInfo.Extension);
lvFiles.Items[ctr].SubItems.Add(oFileInfo.Length.ToString());
lvFiles.Items[ctr].SubItems.Add(oFileInfo.CreationTime.ToString());
fileNo++;
ctr++;
}
希望有所帮助