[英]Moving items in a listbox in c#
我正在從列表框中的目錄中添加文件名,然后可以成功添加它。然后我應該能夠通過選擇特定項目然后向上或向下移動文件來在列表框中排列文件。
以下功能是嘗試向上移動文件。 我正在嘗試將整個列表框項目復制到一個對象,並將選定的列表框項目復制到另一個對象。
然后,如果按下按鈕,則所選項目應與列表中上方的項目交換。
我打算更改新列表並將項目復制回原始列表框。但是我不知道如何將對象中的項目復制回列表框。
下面的代碼不起作用
private void plus_Click(object sender, EventArgs e)
{
object[] items = new object[listBox1.Items.Count];
listBox1.Items.CopyTo(items, 0);
object[] selecteditems = new object[listBox1.SelectedItems.Count];
listBox1.SelectedItems.CopyTo(selecteditems, 0);
object[] selectedindices = new object[listBox1.SelectedItems.Count];
listBox1.SelectedIndices.CopyTo(selectedindices, 0);
// listBox1.Items.CopyTo(items, 0);
int upper_index = listBox1.Items.Count - 1;
for (int i = 0; i < listBox1.Items.Count;i++ )
{
if ((i == (int)selectedindices[i])&&(i!=0))
{
object temp = items[i];
items[i] = items[i - 1];
items[i - 1] = temp;
}
}
}
乍一看,它不起作用,因為您正在創建一個新列表,而不是更改ListBox
的實際DataSource
。 您需要在DataSource
本身內部移動項目,或者需要在單獨的列表上執行所有這些操作,最后,再次設置DataSource
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.