[Tips][ListView] 項目を行で選択できるようにする

ListViewの表示モードがDetailsのときは、先頭の列の項目をクリックすることによって項目の選択を行います。

これを、どの列でクリックされた場合でも(つまり行内でクリックされた場合に)項目が選択されるようにするには、FullRowSelectプロパティにTrueを指定します。

下記は、[FullRowSelect]チェックボックスにチェックが付けられたときに、項目を行単位で選択できるようにする例です。

VBの例

''' <summary>
''' フォームロード時にListViewに項目を追加する
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub Form6_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

''' <summary>
''' FullRowSelectのチェック変更時の処理
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    '[FullRowSelect]チェックボックスの内容に合わせて
    'ListViewの項目選択方法を切り替える
    ListView1.FullRowSelect = CheckBox1.Checked
End Sub

C#の例

/// <summary>
/// フォームロード時にListViewに項目を追加する
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form6_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);
    }
}

/// <summary>
/// FullRowSelectのチェック変更時の処理
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    // [FullRowSelect]チェックボックスの内容に合わせて
    // ListViewの項目選択方法を切り替える
    listView1.FullRowSelect = checkBox1.Checked;
}

One Reply to “[Tips][ListView] 項目を行で選択できるようにする”

  1. ピンバック: [Tips][ListView] まとめ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください