[Tips][ListView] チェックが付いている項目を取得する

スポンサーリンク

ListViewコントロール上でチェックの付けられた項目は、CheckedItemsプロパティに格納されています。

CheckedItemsプロパティはListViewItemのコレクションとなっており、For Each(C#ではforeach)などを利用して、チェックされた項目を取り出すことが出来ます。

下記は、[チェックが付いた項目を取得する]ボタンがクリックされると、現在チェックの付いている項目をメッセージボックスに表示します。

VBの例

' フォームロード時にListViewに項目を追加する
Private Sub Form12_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

    'チェックボックスを表示する
    ListView1.CheckBoxes = True
End Sub

' [チェックが付いた項目を取得する]ボタンクリック時の処理
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Dim msg As String = String.Empty  

    For Each itemx As ListViewItem In ListView1.CheckedItems 
        msg &= itemx.Text & vbCrLf 
    Next 
    MessageBox.Show("チェックが付いている項目は" & vbCrLf & msg) 
End Sub

C#の例

// フォームロード時にListViewに項目を追加する
private void Form12_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);
    }

    // チェックボックスを表示する
    listView1.CheckBoxes = true;
}

// [チェックが付いた項目を取得する]ボタンクリック時の処理
private void button1_Click(object sender, EventArgs e)
{
    string msg = String.Empty;

    foreach (ListViewItem itemx in listView1.CheckedItems)
    {
        msg += itemx.Text + "\r\n";
    }

    MessageBox.Show("チェックが付いている項目は\r\n" + msg);
}

コメント

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