簡體   English   中英

未在ListView中顯示的ListView項目和列消失

[英]ListView Items not showing in ListView and columns disappear

我在WinForm的選項卡控件中有一個ListView。 首次加載表單時,我可以按預期看到所有標題:

在此輸入圖像描述

我用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有一個滾動條,我猜這個滾動條沒有隱藏。

任何建議都是最受歡迎的!

UPDATE

listview Items.Count告訴我listview中有項目。 更奇怪的是,如果我將視圖更改為SmallIcons,我會看到它們,在詳細信息視圖中它們會消失! 如果我打破代碼並查看項目,他們在所有正確的位置使用正確的數據看起來很好!

這個問題的答案非常令人尷尬! 你可能會說一個男生錯誤。

例程中的一行代碼清除了我錯過了重要元素的形式。

lvFiles.Clear(); 這顯然清除了包括標題在內的所有內容,我將其更改為lvFiles.Items.Clear(); 這是我尋找的第一件事,不敢相信我錯過了它。 :(

這樣的事情怎么樣?

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++;
}

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM