【发布时间】:2014-02-03 17:02:05
【问题描述】:
我在 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 有一个滚动条,我猜这表明它没有隐藏。
欢迎提出任何建议!
更新
列表视图 Items.Count 告诉我列表视图中有项目。更奇怪的是,如果我将视图更改为 SmallIcons 我会看到它们,在 Details 视图中它们会消失!如果我破译代码并查看项目,它们在所有正确的地方都有正确的数据!
【问题讨论】:
-
有什么方法可以用调试器运行它并检查列表视图是否实际包含您要添加的项目?就像将 lvFiles.items.count 放在手表或其他东西上,并确保它们增加只是为了确定。
-
另外我刚刚注意到,在第二部分中,在您“添加”项目后,您会丢失列标题?这是真的还是只是因为滚动或其他原因?
-
发布的代码有效。是否涉及其他面板? ListViewGroups 等?
-
@metinoheat 好点,我刚到家,但会回来检查。但是是的,因为图片显示列标题消失但是当加载足够的项目以保证一个时,列表视图确实有一个滚动条。
-
@LarsTech 是的,列表视图位于 TabControl 中