1

リストボックスのシングルクリックで5つのアイテムを選択するにはどうすればよいですか?いずれかの項目をクリックすると、選択したインデックスから+2と-2になります。したがって、シングルクリックでリストビューから5つのアイテムを選択する必要があります。C#(WPF)を使用しています。

4

2 に答える 2

1

あなたが何をしたいのか正確にはわかりませんが、試してみてください。=)

ListBox の Click イベントを見てください。好きな5つのアイテムを選択するなど、そこでは何でもできます。次のようにできます(テストされていませんが、アイデアが得られます):

int sindex = listBox1.SelectedIndex;
listBox1.SelectedItems.Clear();
for(int i = Math.Max(sindex - 2, 0); i < Math.Min(sindex + 2, listBox1.Items.Count()), i++)
{
    listBox1.SelectedItems.Add(listBox1.Items[i]);
}

別のことは、SelectionMode を Multiple または Extended に設定することです。これにより、探している動作が得られますか?

于 2010-10-22T09:39:38.157 に答える
0

selectionchanged イベントを見て、選択した項目のインデックスを取得し、+2 と -2 にします。次のように試してみましたが、動作します。

void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    int idx = list.SelectedIndex;
    int startIdx = idx - 2;
    int endIdx = idx + 2;
    if (startIdx < 0)
    {
        startIdx = 0;
    }
    if (endIdx >= list.Items.Count)
    {
        endIdx = list.Items.Count-1;
    }

    for (int i = startIdx; i <= endIdx; i++)
    {
        if (i != idx)
        {
            list.SelectedItems.Add(list.Items[i]);
        }
    }
}

このコードの問題の 1 つは、ctrl を使用して別の項目を選択できるため、selecteditems のカウントが増加することです。

于 2010-10-22T10:15:18.350 に答える