为什么我的选中列表框排序代码不起作用
本文关键字:排序 代码 不起作用 列表 我的 为什么 | 更新日期: 2023-09-27 18:30:46
>我有一个选中的列表框,我正在为两个按钮编写代码,一个按钮向上移动所有选定项目,另一个按钮向下移动每个项目。向上移动的那个有效,但我无法让另一个工作:
//Move up
private void button2_Click(object sender, EventArgs e)
{
for (int i = 1; i < checkedListBox1.Items.Count; i++ ) {
if (checkedListBox1.GetItemChecked(i)) {
checkedListBox1.Items.Insert(i - 1, checkedListBox1.Items[i]);
checkedListBox1.SetItemChecked(i - 1, true);
checkedListBox1.Items.RemoveAt(i + 1);
}
}
}
//Move Down
private void button3_Click(object sender, EventArgs e)
{
for (int i = checkedListBox1.Items.Count - 2; i >= 0; i--)
{
if (checkedListBox1.GetItemChecked(i))
{
checkedListBox1.Items.Insert(i + 1, checkedListBox1.Items[i]);
checkedListBox1.SetItemChecked(i + 1, true);
checkedListBox1.Items.RemoveAt(i);
}
}
}
我认为您在第二种方法中需要它:
checkedListBox1.Items.Insert(i + 2, checkedListBox1.Items[i]);
checkedListBox1.SetItemChecked(i + 2, true);
您当前的方法是在以下元素之前插入当前元素的副本,这基本上只是将其放在同一位置。