[Tips][ListView] 選択項目を取得する

スポンサーリンク

選択項目を取得するには、SelectedItems プロパティを使用します。

SelectedItems プロパティは選択されているListViewItemが格納されるコレクションで、1つの項目を取得する場合は SelectedItems(0)(C#の場合はSelectedItems[0]) のようにインデックスを指定して項目を取り出します。

下記は、選択されている項目の内容をメッセージボックスに表示する例です。

VBの例

' フォームロード時にListViewに項目を追加する
Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim items(,) As String = {
        {"VB", "ぶいびー"},
        {"C#", "しーしゃーぷ"},
        {"VC++", "びじゅあるしーぷらすぷらす"},
        {"F#", "えふしゃーぷ"},
        {"PowerShell", "ぱわーしぇる"}}

    'ListViiewに項目を追加
    For I As Integer = 0 To (items.Length \ items.Rank) - 1
        Dim itemx As New ListViewItem

        itemx.Text = items(I, 0)
        itemx.SubItems.Add(items(I, 1))
        ListView1.Items.Add(itemx)
    Next
End Sub

' [選択項目を取得する]ボタンクリック時の処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '選択項目があるかどうかを確認する
    If ListView1.SelectedItems.Count = 0 Then
        '選択項目がないので処理をせず抜ける
        Exit Sub
    End If

    '選択項目を取得する
    Dim itemx As ListViewItem = ListView1.SelectedItems(0)

    MessageBox.Show(itemx.Text & "(" & itemx.SubItems(1).Text & ")")
End Sub

C#の例

// フォームロード時にListViewに項目を追加する
private void Form_Load(object sender, EventArgs e)
{
    string[,] items = {
                      {"VB", "ぶいびー"},
                      {"C#", "しーしゃーぷ"},
                      {"VC++", "びじゅあるしーぷらすぷらす"},
                      {"F#", "えふしゃーぷ"},
                      {"PowerShell", "ぱわーしぇる"}};

    // ListViewに項目を追加する
    for (int i = 0; i < items.Length / items.Rank; i++)
    {
        ListViewItem itemx = new ListViewItem();

        itemx.Text = items[i, 0];
        itemx.SubItems.Add(items[i, 1]);
        listView1.Items.Add(itemx);
    }
}

// [選択項目を取得する]ボタンクリック時の処理
private void button1_Click(object sender, EventArgs e)
{
    // 選択項目があるかどうかを確認する
    if (listView1.SelectedItems.Count == 0)
    {
        // 選択項目がないので処理をせず抜ける
        return;
    }

    // 選択項目を取得する
    ListViewItem itemx = listView1.SelectedItems[0];

    MessageBox.Show(itemx.Text + "(" + itemx.SubItems[1].Text + ")");
}

コメント

タイトルとURLをコピーしました