ListViewがフォーカスされていない場合でも選択項目を表示したい - ListViewがフォーカスを失うと選択項目が表示されない動作を防ぎたい - C#

ListViewがフォーカスされていない場合でも選択項目を表示するための手順を紹介します。

概要

ListViewはデフォルトの状態では、項目を選択した状態でListViewのフォーカスを失うと選択された項目の選択状態が非表示になります。用途によってはフォーカスを失った場合でも選択項目を表示させておきたいことがります。この記事では、ListViewがフォーカスされていない場合でも選択項目を表示するための手順を紹介します。

現象の確認

下図のUIを作成します。ListView, Button, TextBox を配置します。


続いて、こちらの記事を参照し、ListViewに項目を表示できる状態を実装します。

下記のコードを記述します。
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 FormListView : Form
  {
    public FormListView()
    {
      InitializeComponent();
    }

    private void FormListView_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 listView1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
  }
}

プロジェクトを実行します。下図のウィンドウが表示されます。


ListViewに表示されている項目を選択します。


TextBoxかButtonをクリックして、フォーカスをListViewから移動させます。ListViewがフォーカスを失うと選択状態も非表示になります。

フォーカスを失っても選択状態を表示する

フォーカスを失っても選択状態を表示状態にするには、ListViewの HideSelection プロパティを変更します。フォームデザイナでListViewをクリックして選択し、プロパティウィンドウのHideSelection プロパティの値を確認します。デフォルトでは"True"に設定されています。


プロパティの値のコンボボックスをクリックします。下図のドロップダウンリストが表示されます。リストの"False"の項目をクリックしてHideSelection プロパティの値を"False"に設定します。


HideSelection プロパティの値を"False"に設定できました。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


ListViewでドラッグ、または[SHIFT]キーを押しながらクリックして、ListViewの要素を選択します。


TextBoxかButtonをクリックして、フォーカスをListViewから移動させます。ListViewがフォーカスを失っても、ListViewの選択状態は表示されたままとなります。


ListViewがフォーカスされていない場合でも選択項目が表示される動作に変更できました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2018-01-29
作成日: 2017-06-23
iPentec all rights reserverd.