【C#】windowsFormでListViewのDetails表示方法と背景色など色の設定方法の紹介

C#.NET

ad2

【C#】windowsFormでListViewのDetails表示方法と背景色など色の設定方法の紹介

データの表示

データを整列して見栄えを良くするListViewのDetailsについてご紹介します。

今まで、C#windowsFormで作成する場合、画面の設計も必要で、データ表示については、TextBoxやLabelをいくつも並べて、一個ずつにデータを設定して、表示していましたが、ListViewをもっと早くに気付いていれば、無駄な苦労をしなくてよかったのにと思います。

自分のメリットして、UI的にも見た目がスッキリするので、画面のデザインに困らないです。

作成サンプル

ListViewの作成するサンプルコードを載せていきたいと思います。

まずは、結果の画面表示です。

listview_sample1

作成方法は色々あります。

僕が勉強した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]

        }
    }
}

表示はできるようになったら今度は、

背景色などを変更したい場合は、下記の様な設定もできます。

まずは、結果の画面表示から。

listview_sample2

ソースコードは、下記に載せてあります。

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のデータのビューにはいくつか種類があります。

  1. Details
  2. LargeIcon
  3. SmallIcon
  4. List
  5. Tile

表示させたいデータの特性を見極めて、どの表示方法がいいのか選択する必要がありますね。

僕の場合はDetailsの表示しかしないので、

今回は、Detailsの表示方法についてご紹介しました。