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