簡體   English   中英

為什么我的選中列表框排序代碼不起作用?

[英]Why won't my checked list box sorting code work?

我有一個選中的列表框,我正在為兩個按鈕編寫代碼,一個將所有選定的項目向上移動,一個將每個項目向下移動。 一個向上移動的工作,但我無法讓另一個工作:

//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);

您當前的方法是在下一個元素之前插入當前元素的副本,這基本上只是將它放在相同的位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM