2017-06-16 24 views
0

リストビュー内のいくつかの項目の間隔をどのように設定するのですか?私はそれぞれのフォルダ内のすべてのファイルを一覧表示し、プログラムを、持っているが、今のリストは、次のようになります。アイテム間のリストビュー間隔/グループによる並べ替え

---FolderName1--- 
fileName1 
fileName2 
fileName3 
---FolderName2--- 
fileName1 
fileName2 

のように...私が使用しています

ビューモードが一覧である、と私は希望いくつかのスペースをフォルダ名としたいのですが、最後のファイル名とフォルダ名と最初のファイルの間に少しの空白を入れるだけで空の行を追加する必要はありません。どのように達成するのですか?

for (int i = 0; i < folderNum; i++) 
{ 
    listView1.Items.Add(folderNum[i].Name); 
    for (int j = 0; j < fileNum; j++) 
    { 
     listView1.Items.Add(fileNum[j].Name); 
    } 
} 
+0

私はこれが可能ではないと思います。各項目に異なるフォントを割り当てることができますが、高さは常に同じです。 – TaW

+0

別の表示モードを使用するとどうなりますか?いくつかのグループを作る方法はありますか?グループ名はフォルダ名なのでしょうか? – EInherjar

+0

'View = Details'を使ってグループを作成することができます。彼らは背が高いですが、私は彼らのフォントなどを設定する方法が見つかりませんでした。 – TaW

答えて

1

あなたはView=Detailsを使用してGroupsを作成することができます。彼らは身長が高いですが、残念ながらFontなどを設定する方法が見つかりませんでした。

Groupsは、Itemsを追加している間に追加することができます。 Groupsを追加したり、いつでも項目が属する変更を追加することができます。 Groupも削除できます。その場合、すべてのアイテムは'default' Groupに移動します。ここで

は一例です:

enter image description here

は、いくつかのデータを準備します

string root = @"D:\scrape\patterns"; 
string mask = "*10*"; 
List<string> folders = Directory.GetDirectories(root).ToList(); 
List<string> files = Directory.GetFiles(root, mask, SearchOption.AllDirectories).ToList(); 

ListViewを準備します

listView1.View = View.Details; 
listView1.Columns.Add("Png Files"); 

は今Groupsを追加します。

// 1st group: add root search folder..: 
    listView1.Groups.Add(root,root); 
    // .. and all 1st level nested folders as more (possible) groups: 
    foreach (string f in folders) listView1.Groups.Add(f, f); 

最後にItemsを挿入します。

// insert items with groups: 
    foreach (string f in files) 
    { 
     string key = Path.GetDirectoryName(f); 
     string text = Path.GetFileName(f); 
     var lvi = listView1.Items.Add(text); 
     lvi.Group = listView1.Groups[key]; 
    } 

注意がそれはあなたがGroupItemはいつでも所属変更することができます..:

listView2.Items[2].Group = listView2.Groups[1]; 

いくつかの注意事項:

  • よく見ると、私が移動したItemは、前に空だったGroupに割り当てられていました。それらは全く表示されません。

  • Groupを含まないItemは、上部に表示されるGroup "default"に追加されます。名前を変更することはできません。したがって、自分の名前を作成し、それに「グループ化されていない」アイテムを割り当てるのが最善です。私はこれに検索ルートの名前を使用しました。

  • HeaderTextHeaderAlignmentを超えてグループをスタイルする方法はわかりません。プロパティがないように見えるか、DrawXXXイベントのいずれにも描画されません。 DrawVisualStyleElementListViewGroup1イベントや機能でそれをやるにあたっての不完全なヒントがありますが、使用方法がわかりませんでした。

+1

ありがとう、これは魅力のように動作します。リストのさまざまなビューモードに関するドキュメントがたくさんあることを願っています。 – EInherjar

関連する問題