ListViewの要素をコードで選択する - プログラムコードによるListViewの要素選択

C#でプログラムコードからListViewの要素を選択するコードを紹介します。

概要

ListViewの項目を選択するには、マウスで項目をクリックすると選択ができます。複数要素を選択する場合は、ドラッグして複数の項目を選択すする方法や、SHIFTキーを押しながら項目をクリックすることで複数の選択ができます。この記事では、マウスのクリックやドラッグではなく、プログラムのコードでListViewを選択する手順を紹介します。

書式

ListViewの項目を選択する場合は、ListViewItem オブジェクトの Selected プロパティを true に設定します。

プログラム

UI

下図のフォームを作成します。ListView, Button, ImageListをフォームに配置します。
ListViewの要素をコードで選択する - プログラムコードによるListViewの要素選択:画像1

イメージの追加、プロパティの設定

ImageListにアイコン画像を追加します。また、ListViewのLargeImageプロパティにImageListを指定します。手順の詳細はこちらの記事を参照してください。

コード

下記のコードを記述します。

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

namespace ListViewDemo
{
  public partial class FormSelectObject : Form
  {
    public FormSelectObject()
    {
      InitializeComponent();
    }

    private void FormSelectObject_Load(object sender, EventArgs e)
    {
      ListViewItem lvi = new ListViewItem("Penguin");
      lvi.ImageIndex = 0;
      listView1.Items.Add(lvi);

      lvi = new ListViewItem("Chicken");
      lvi.ImageIndex = 1;
      listView1.Items.Add(lvi);

      lvi = new ListViewItem("Pig");
      lvi.ImageIndex = 2;
      listView1.Items.Add(lvi);

      lvi = new ListViewItem("Whale");
      lvi.ImageIndex = 3;
      listView1.Items.Add(lvi);

    }

    private void button1_Click(object sender, EventArgs e)
    {
      listView1.Items[1].Selected = true;
      listView1.Focus();
    }

    private void button2_Click(object sender, EventArgs e)
    { 
      listView1.Items[1].Selected = true;
      listView1.Items[2].Selected = true;
      listView1.Items[3].Selected = true;
      listView1.Focus();
    }
  }
}

解説

一つの項目を選択する場合

  private void button1_Click(object sender, EventArgs e)
  {
    listView1.Items[1].Selected = true;
    listView1.Focus();
  }

選択される ListViewItem オブジェクトの Selected プロパティを true に設定します。ボタンをクリックした状態では、ListViewにフォーカスが移動せず、選択状態が画面依反映されないため、listView1.Focus() メソッドを呼び出し、ListViewにフォーカスを移します。ListViewにフォーカスが設定されると選択状態が画面に反映されます。

複数の項目を選択する場合

  private void button2_Click(object sender, EventArgs e)
  { 
    listView1.Items[1].Selected = true;
    listView1.Items[2].Selected = true;
    listView1.Items[3].Selected = true;
    listView1.Focus();
  }

複数の項目を選択状態にする場合も選択される ListViewItem オブジェクトの Selected プロパティを true に設定します。先の場合と同様にFocus() メソッドを呼び出し、ListViewにフォーカスを移し、選択状態を画面に反映します。

実行結果

上記のプロジェクトを実行します。下図のウィンドウが表示されます。
ListViewの要素をコードで選択する - プログラムコードによるListViewの要素選択:画像2

[button1]をクリックします。2番目の要素"Chicken"の項目が選択状態になります。
ListViewの要素をコードで選択する - プログラムコードによるListViewの要素選択:画像3

[button2]をクリックします。2番目、3番目、4番目の項目が選択状態になります。
ListViewの要素をコードで選択する - プログラムコードによるListViewの要素選択:画像4

プログラムコードからListViewの項目の選択ができました。

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2017-06-23
Copyright © 1995–2025 iPentec all rights reserverd.