前置き
.NET 5 で「System.Windows.Forms.ListView」に新機能が追加されたようです。
- System.Windows.Forms.ListView
- 折りたたみ可能なグループをサポート
- フッター
- 字幕、タスク、およびタイトルの画像をグループ化
とのことで日本語訳だとなんのこっちゃだったのですが、これらすべて ListView の Group 機能に関するものでした。
折りたたみ可能なグループをサポート
ListViewGroup.CollapsedState を指定することで、グループを折りたたみ可能にすることができます。
Collapsed
を指定すると折りたたまれた状態で表示。
Expanded
を指定すると展開された状態で表示されます。
フッター
ListViewGroup.Footer に、文字列でグループごとのフッターを指定できます。
FooterAlignmentで水平方向の位置も指定できます。
字幕、タスク、およびタイトルの画像をグループ化
字幕 = サブタイトル
Listviewgroup.Subtitleに、文字列でグループごとのサブタイトルを指定できます。
タスク = タスクリンク
Listviewgroup.Tasklinkを設定することで、グループごとにリンクを表示させることができます。
このリンクをクリックするとListview.GroupTasklinkClickがトリガーされます。
画像 = グループのタイトルに画像を表示できる
ListViewGroup.TitleImageKey または ListViewGroup.TitleImageIndex を指定することで、グループのタイトルに画像を表示させることができます。
ここで指定するキーとインデックスですが、これは ListView.GroupImageList に対してのものになります。
例
ざっくりですが、以下使用例になります。
ImageList imageList = new ImageList();
imageList.Images.Add("sample", Bitmap.FromFile(@"D:/\Users/\shima/\Pictures/\qiita-brand-color.PNG"));
myListView.GroupImageList = imageList;
myListView.GroupTaskLinkClick += MyListView_GroupTaskLinkClick;
foreach (ListViewGroup listViewGroup in myListView.Groups)
{
listViewGroup.CollapsedState = ListViewGroupCollapsedState.Expanded;
listViewGroup.Footer = $"「{listViewGroup.Header}」のフッター";
listViewGroup.FooterAlignment = HorizontalAlignment.Center;
listViewGroup.Subtitle = $"「{listViewGroup.Header}」のサブタイトル";
listViewGroup.TitleImageKey = @"sample";
listViewGroup.TaskLink = $"「{listViewGroup.Header}」のタスクリンク";
}