如何在列表框中单击选择五个项目? 如果我点击任何项目,我只想从所选索引+2和-2。所以我的单击需要在列表视图中选择五个项目。 我正在使用C#(WPF)。
答案 0 :(得分: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。这会导致您正在寻找的行为吗?
答案 1 :(得分: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选择另一个项目,这样可以增加选择项数量