【C#】windowsFormでListViewのDetails表示方法と背景色など色の設定方法の紹介
データの表示
データを整列して見栄えを良くするListViewのDetailsについてご紹介します。
今まで、C#windowsFormで作成する場合、画面の設計も必要で、データ表示については、TextBoxやLabelをいくつも並べて、一個ずつにデータを設定して、表示していましたが、ListViewをもっと早くに気付いていれば、無駄な苦労をしなくてよかったのにと思います。
自分のメリットして、UI的にも見た目がスッキリするので、画面のデザインに困らないです。
作成サンプル
ListViewの作成するサンプルコードを載せていきたいと思います。
まずは、結果の画面表示です。

作成方法は色々あります。
僕が勉強したListViewの作成コードサンプルを下記に載せておきます。
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsForms_ListView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { /////////////////////////////// ///////////Detail1///////////// /////////////////////////////// //ListViewの項目表示させる。 //クリア処理 listView_Details1.Items.Clear(); //GridLine表示 listView_Details1.GridLines = true; //ヘッダー定義 ColumnHeader columnNo = new ColumnHeader { Text = "No.", Width = 40 }; ColumnHeader columnType = new ColumnHeader { Text = "種類", Width = 40 }; ColumnHeader columnData = new ColumnHeader { Text = "データ", Width =60 }; ColumnHeader columnData2 = new ColumnHeader { Text = "データ2", Width = 80 }; //ヘッダー設定 ColumnHeader[] colHeaderRegValue = { columnNo, columnType, columnData, columnData2 }; //ヘッダー追加 listView_Details1.Columns.AddRange(colHeaderRegValue); //データ内容設定 string[] items1 = {"1","A","1234","ABC987"}; string[] items2 = {"2","B","8888","XYZ543"}; string[] items3 = {"3","C","7462","HGU328"}; string[] items4 = {"4","D","2238","PUY432"}; //データ追加 listView_Details1.Items.Add(new ListViewItem(items1)); listView_Details1.Items.Add(new ListViewItem(items2)); listView_Details1.Items.Add(new ListViewItem(items3)); listView_Details1.Items.Add(new ListViewItem(items4)); /////////////////////////////// ///////////Detail2///////////// /////////////////////////////// //クリア処理 listView_Details2.Items.Clear(); //GridLine表示 listView_Details2.GridLines = true; //ヘッダー定義 listView_Details2.Columns.Add("番号"); listView_Details2.Columns.Add("内容"); //リスト定義 番号 listView_Details2.Items.Add("001").SubItems.Add("企画会議"); //Items[0] listView_Details2.Items.Add("002").SubItems.Add("編集作業"); //Items[1] listView_Details2.Items.Add("003").SubItems.Add("アップロード"); //Items[2] } } }
表示はできるようになったら今度は、
背景色などを変更したい場合は、下記の様な設定もできます。
まずは、結果の画面表示から。

ソースコードは、下記に載せてあります。
using System; using System.Drawing; using System.Windows.Forms; namespace WindowsForms_ListView { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { /////////////////////////////// ///////////Detail1///////////// /////////////////////////////// //ListViewの項目表示させる。 //クリア処理 listView_Details1.Items.Clear(); //GridLine表示 listView_Details1.GridLines = true; //ヘッダー定義 ColumnHeader columnNo = new ColumnHeader { Text = "No.", Width = 40 }; ColumnHeader columnType = new ColumnHeader { Text = "種類", Width = 40 }; ColumnHeader columnData = new ColumnHeader { Text = "データ", Width =60 }; ColumnHeader columnData2 = new ColumnHeader { Text = "データ2", Width = 80 }; //ヘッダー設定 ColumnHeader[] colHeaderRegValue = { columnNo, columnType, columnData, columnData2 }; //ヘッダー追加 listView_Details1.Columns.AddRange(colHeaderRegValue); //データ内容設定 string[] items1 = {"1","A","1234","ABC987"}; string[] items2 = {"2","B","8888","XYZ543"}; string[] items3 = {"3","C","7462","HGU328"}; string[] items4 = {"4","D","2238","PUY432"}; //データ追加 listView_Details1.Items.Add(new ListViewItem(items1)); listView_Details1.Items.Add(new ListViewItem(items2)); listView_Details1.Items.Add(new ListViewItem(items3)); listView_Details1.Items.Add(new ListViewItem(items4)); //色設定したい場合 //1行目の色設定 listView_Details1.Items[0].UseItemStyleForSubItems = false; //false:列ごとに設定を行う場合 listView_Details1.Items[0].BackColor = Color.LightGreen; listView_Details1.Items[0].SubItems[1].BackColor = Color.LemonChiffon; //BackColor:背景色 listView_Details1.Items[0].SubItems[1].ForeColor = Color.Red; //ForeColor:文字色 //2行目の色設定 listView_Details1.Items[1].UseItemStyleForSubItems = false; listView_Details1.Items[1].BackColor = Color.LightPink; listView_Details1.Items[1].SubItems[2].BackColor = Color.LightSkyBlue; //3行目の色設定 listView_Details1.Items[2].UseItemStyleForSubItems = false; listView_Details1.Items[2].BackColor = Color.Aqua; listView_Details1.Items[2].SubItems[3].BackColor = Color.Lavender; listView_Details1.Items[2].SubItems[3].ForeColor = Color.Red; //3行目の色設定 listView_Details1.Items[3].UseItemStyleForSubItems = true; //true:行全体の色を変更する場合 listView_Details1.Items[3].BackColor = Color.Lime; /////////////////////////////// ///////////Detail2///////////// /////////////////////////////// //クリア処理 listView_Details2.Items.Clear(); //GridLine表示 listView_Details2.GridLines = true; //ヘッダー定義 listView_Details2.Columns.Add("番号"); listView_Details2.Columns.Add("内容"); //リスト定義 番号 listView_Details2.Items.Add("001").SubItems.Add("企画会議"); //Items[0] listView_Details2.Items.Add("002").SubItems.Add("編集作業"); //Items[1] listView_Details2.Items.Add("003").SubItems.Add("アップロード"); //Items[2] //色設定したい場合 //1行目の色設定 listView_Details2.Items[0].UseItemStyleForSubItems = false; listView_Details2.Items[0].BackColor = Color.LightGreen; listView_Details2.Items[0].SubItems[1].BackColor = Color.LemonChiffon; //BackColor:背景色 listView_Details2.Items[0].SubItems[1].ForeColor = Color.OrangeRed; //ForeColor:文字色 //2行目の色設定 listView_Details2.Items[1].UseItemStyleForSubItems = false; listView_Details2.Items[1].BackColor = Color.LightPink; listView_Details2.Items[1].SubItems[1].BackColor = Color.LightSkyBlue; //3行目の色設定 listView_Details2.Items[2].UseItemStyleForSubItems = true; listView_Details2.Items[2].BackColor = Color.Aqua; } } }
表示設定種類
list_viewのデータのビューにはいくつか種類があります。
- Details
- LargeIcon
- SmallIcon
- List
- Tile
表示させたいデータの特性を見極めて、どの表示方法がいいのか選択する必要がありますね。
僕の場合はDetailsの表示しかしないので、
今回は、Detailsの表示方法についてご紹介しました。