C# リストボックスの使い方(ListBox)

C#サンプル プログラムプログラミング
スポンサーリンク

C# サンプル プログラム一覧


選択リストがあり、その中からアイテムを選択するリストボックスの使い方のサンプルです。

リストボックスの見た目はこんな感じです。

リストボックスを扱う為の設定と取得は

・選択リストの設定

・選択アイテムの取得

・空行の追加(未選択行)

・アイテムの初期選択

があります。

 

それと、選択リストの元とデータで4パターンサンプルを作成しました。

①単純に選択文字列を追加する

サンプルの内容

選択リストの元となるデータで4パターンのサンプルを作成しました。

①リストボックスに文字列を追加するパターン

 単純にリストボックスに文字列を追加します。

②リストボックスに文字列の配列を追加するパターン

 配列に設定された文字列を追加します。

③リストボックスにデータテーブルを作成して追加するパターン

 データテーブルに表示名とコードを設定し、それをリストボックスに追加します。

 選択値はコードで取得します。

④リストボックスにDictionaryを元に作成したデータテーブルを追加するパターン

 「③」と基本的には同じですが、Dictionaryからデータテーブルを作成します。

 作成したデータテーブルをリストボックスに追加します。

 選択値はコードで取得します。

 

「選択しているものを表示する」をクリックすると選択値がそれぞれの横にある

テキストボックスに表示されます。

使用部品

 

No項目名Textname部品
1①(見出し)①リストボックスに文字列を追加するlabel1Label
2①(選択欄)listBox1ListBox
3①(表示欄)textBox1TextBox
4②(見出し)②リストボックスに文字列の配列を追加するlabel2Label
5②(選択欄)listBox2ListBox
6②(表示欄)textBox2TextBox
7③(見出し)③リストボックスにデータテーブルを
作成して追加する
label3Label
8③(選択欄)listBox3ListBox
9③(表示欄)textBox3TextBox
10④(見出し)④リストボックスにDictionaryを元に
作成したデータテーブルを追加する
label4Label
11④(選択欄)listBox4ListBox
12④(表示欄)textBox4TextBox
13表示ボタン選択しているものを表示するbutton1Button
スポンサーリンク

プログラミング

言語:C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp21
{
    public partial class Form2 : Form
    {
        /// <summary>
        /// プレイヤー
        /// </summary>
        Dictionary<string, string> DicPlayer = new Dictionary<string, string>()
        {
            {"01", "錦織圭"},
            {"02", "ロジャー・フェデラー"},
            {"03", "ノバク・ジョコビッチ"},
            {"04", "ラファエル・ナダル"},
            {"05", "大坂 なおみ"},
            {"06", "シモナ ハレプ"}
        };

        public Form2()
        {
            InitializeComponent();
        }

        /// <summary>
        /// 画面起動時処理
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form2_Load(object sender, EventArgs e)
        {
            // ******************************************************************
            // ①リストボックスに文字列を追加する
            // ******************************************************************
            listBox1.Items.Add("");
            listBox1.Items.Add("錦織圭");
            listBox1.Items.Add("ロジャー・フェデラー");
            listBox1.Items.Add("ノバク・ジョコビッチ");
            listBox1.Items.Add("ラファエル・ナダル");
            listBox1.Items.Add("大坂 なおみ");
            listBox1.Items.Add("シモナ ハレプ");

            // 選択状態にする
            listBox1.Text="ロジャー・フェデラー";

            // ******************************************************************
            // ②リストボックスに文字列の配列を追加する
            // ******************************************************************

            // 配列に文字列を設定する
            String[] Items = {
                 "","錦織圭", "ロジャー・フェデラー", "ノバク・ジョコビッチ",
                "ラファエル・ナダル","大坂 なおみ", "シモナ ハレプ"
            };

            // リストボックスに配列を追加する
            listBox2.Items.AddRange(Items);

            // 選択状態にする
            listBox2.Text = "ロジャー・フェデラー";

            // ******************************************************************
            // ③リストボックスにデータテーブルを作成して追加する
            // ******************************************************************

            // データテーブルのインスタンスを作成する
            DataTable dt1 = new DataTable();

            // 配列に列名を設定する
            String[] Items2 = { "id", "name" };

            // データテーブルに列(配列)を追加する
            dt1.Columns.AddRange(Items2.Select(n => new DataColumn(n)).ToArray());

            // データテーブルに行を追加する
            dt1.Rows.Add("01", "錦織圭");
            dt1.Rows.Add("02", "ロジャー・フェデラー");
            dt1.Rows.Add("03", "ノバク・ジョコビッチ");
            dt1.Rows.Add("04", "ラファエル・ナダル");
            dt1.Rows.Add("05", "大坂 なおみ");
            dt1.Rows.Add("06", "シモナ ハレプ");

            // リストボックスにデータテーブルを追加する 
            listBox3.DataSource = dt1;

            // nameを表示項目に設定する
            listBox3.DisplayMember = "name";

            // idを値に設定する
            listBox3.ValueMember = "id";

            // 空行をリストの先頭に追加する
            dt1.Rows.InsertAt(dt1.NewRow(), 0);

            // 選択状態にする
            listBox3.SelectedValue = "02";

            // ******************************************************************
            // ④リストボックスにDictionaryを元に作成したデータテーブルを追加する
            // ******************************************************************

            // データテーブルのインスタンスを作成する
            DataTable dt2 = new DataTable("testTable");

            // 配列に列名を設定する
            String[] Items3 = { "id", "name" };

            // データテーブルに列(配列)を追加する
            dt2.Columns.AddRange(Items3.Select(n => new DataColumn(n)).ToArray());

            // データテーブルに行を追加する(Dictionary)
            foreach (KeyValuePair<string, string> p in DicPlayer)
            {
                dt2.Rows.Add(p.Key, p.Value);
            }

            // リストボックスにデータテーブルを追加する 
            listBox4.DataSource = dt2;

            // nameを表示項目に設定する
            listBox4.DisplayMember = "name";

            // idを値に設定する
            listBox4.ValueMember = "id";

            // 空行をリストの先頭に追加する
            dt2.Rows.InsertAt(dt2.NewRow(), 0);

            // 選択状態にする
            listBox4.SelectedValue = "02";
        }

        /// <summary>
        /// 選択しているものを表示する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            // ①選択されているITEMをテキストボックスに表示する
            if (listBox1.SelectedItem != null)
            {
                textBox1.Text = listBox1.SelectedItem.ToString();
            }

            // ②選択されているITEMをテキストボックスに表示する
            if (listBox2.SelectedItem != null)
            {
                textBox2.Text = listBox2.SelectedItem.ToString();
            }

            // ③選択されている値をテキストボックスに表示する
            if (listBox3.SelectedItem != null)
            {
                textBox3.Text = listBox3.SelectedValue.ToString();
            }

            // ①選択されている値をテキストボックスに表示する
            if (listBox4.SelectedItem != null)
            {
                textBox4.Text = listBox4.SelectedValue.ToString();
            }

        }
    }
}

実行結果

起動直後、3行目が選択状態でひょうじされます。

そのまま「選択しているものを表示する」をクリックします。

上段:名称がそのまま取得され、テキストボックスに表示されます。

下段:コードが取得され、テキストボックスに表示されます。

空行を選択し、「選択しているものを表示する」をクリックします。

空行選択なので、テキストボックスには何も表示されません。

それぞれ選択し、「選択しているものを表示する」をクリックします。

それぞれの値が取得され、テキストボックスに表示されます。

以上です。

スポンサーリンク
タイトルとURLをコピーしました