1

我如何在列表框中单击五个项目?如果我单击任何项​​目,我只想从所选索引中 +2 和 -2。所以我的单击需要在列表视图中选择五个项目。我正在使用 C#(WPF)。

4

2 回答 2

1

我不确定您到底想做什么,但正在尝试。=)

看看 ListBox 的 Click 事件。您可以在那里做任何事情,包括选择您选择的五个项目。你可以这样做(未经测试,但给你一个想法):

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]);
        }
    }
}

这段代码的一个问题是您仍然可以使用 ctrl 来选择另一个项目,因此它会使选定项目的数量增加

于 2010-10-22T10:15:18.350 回答