リストコントロールで選択した項目の各列の値を取得する方法

文書番号 : 85002     文書種別 : 使用方法     登録日 : 2020/03/10     最終更新日 : 2020/03/10
文書を印刷する
対象製品
InputMan for Windows Forms 10.0J
詳細
リストコントロール(GcListBox)のリストが複数列のとき、選択した項目の各列の値を取得するには、下記のサンプルコードのように、SelectedItemsプロパティからListItemのSubItemsプロパティを使用して取得します。

[Visual Basic]
Imports GrapeCity.Win.Editors

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ' リストコントロールの設定
        GcListBox1.SelectionMode = SelectionMode.MultiExtended
        GcListBox1.Columns.AddRange(New ListColumn() {New ListColumn("列1"), New ListColumn("列2"), New ListColumn("列3")})
        GcListBox1.Items.AddRange(New ListItem() {
         New ListItem(New SubItem() {New SubItem(100), New SubItem("AAA"), New SubItem(DateTime.Today)}),
         New ListItem(New SubItem() {New SubItem(200), New SubItem("BBB"), New SubItem(DateTime.Today.AddDays(1))}),
         New ListItem(New SubItem() {New SubItem(300), New SubItem("CCC"), New SubItem(DateTime.Today.AddDays(2))})
        })
    End Sub

    Private Sub GcListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles GcListBox1.SelectedIndexChanged
        ' 選択された項目の値確認
        For Each item As ListItem In GcListBox1.SelectedItems
            Console.WriteLine($"列1={item.SubItems(0).Value}")
            Console.WriteLine($"列2={item.SubItems(1).Value}")
            Console.WriteLine($"列3={item.SubItems(2).Value}")
        Next
    End Sub
End Class
[C#]
using GrapeCity.Win.Editors;

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        // リストコントロールの設定
        gcListBox1.SelectionMode = SelectionMode.MultiExtended;
        gcListBox1.Columns.AddRange(new ListColumn[] {new ListColumn("列1"), new ListColumn("列2"), new ListColumn("列3")});
        gcListBox1.Items.AddRange(new ListItem[] {
            new ListItem(new SubItem[] {new SubItem(100), new SubItem("AAA"), new SubItem(DateTime.Today)}),
            new ListItem(new SubItem[] {new SubItem(200), new SubItem("BBB"), new SubItem(DateTime.Today.AddDays(1))}),
            new ListItem(new SubItem[] {new SubItem(300), new SubItem("CCC"), new SubItem(DateTime.Today.AddDays(2))})
        });
    }

    private void gcListBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        //  選択された項目の値確認
        foreach (ListItem item in gcListBox1.SelectedItems)
        {
            Console.WriteLine($"列1={item.SubItems[0].Value}");
            Console.WriteLine($"列2={item.SubItems[1].Value}");
            Console.WriteLine($"列3={item.SubItems[2].Value}");
        }
    }
}