[Tips][ListView] 項目を1つだけ選択できるようにする

スポンサーリンク

ListViewコントロールは、通常複数の項目を同時に選択できるようになっています。

これを、単一の項目だけを選択できるように変更するには MultiSelect プロパティにFalseを設定します(既定値はTrueです)。

下記は[MultiSelect]チェックボックスの状態にあわせて、単一の項目だけを選択できるようにするかどうかを切り替える例です。

VB.NETの例

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

' MultiSelectのチェック変更時の処理
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
    '[MultiSelect]チェックボックスの内容に合わせて
    'ListViewの項目選択を単一にするか複数にするかを切り替える
    ListView1.MultiSelect = CheckBox1.Checked
End Sub

C#の例

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

// MultiSelectのチェック変更時の処理
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    // [MultiSelect]チェックボックスの内容に合わせて
    // ListViewの項目選択を単一にするか複数にするかを切り替える
    listView1.MultiSelect = checkBox1.Checked;
}

コメント

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