2011-12-01 67 views
1

我目前有兩個我正在使用的列表。一個裝滿了物品,另一個是空的。當用戶雙擊填充列表中的項目時,應該將該項目添加到空白/第二個列表中,但不是將其添加到該列表的頂部,而是希望新添加的項目位於底部。所以這些項目應該從下往上添加。 我正在使用datagridview,但只要它完成了工作,我就願意使用listview/listbox。在列表視圖中添加自下而上的項目

回答

2

我添加了兩個列表框到窗體。 listBox1中和listBox2 我加七個項目的第一個列表框{一,二,三......} 我加入了雙擊事件處理程序,我

listBox2.Items.Add(listBox1.SelectedItem); 

新項目添加到列表的底部,這聽起來就像你想要的。我知道同樣的事情與DataGridView一起工作。

您是否希望將它們物理地添加到盒子的底部,在頂部留下空白,直到它被填充?那是你正在嘗試做什麼?

對不起,這不是一個真正的答案,我想我沒有足夠的代表來回複評論。


編輯: 確定我想我有你的答案現在 添加一個列表框與您的項目,它並沒有成爲一個列表框中選擇的datagridview會正常工作。

嘗試使用FlowControlPanel並將對齊方式改爲自下而上,聽起來很簡單,很好。 標籤添加到它,這樣

//add a label to the flow control panel when you double click on an item 
private void listBox1_DoubleClick(object sender, EventArgs e) 
    { 
     Label label = new Label(); 
     label.Text = listBox1.SelectedItem.ToString(); 
     label.Click += new EventHandler(label_Click); 
     label.AutoSize = true; 
     flowLayoutPanel1.Controls.Add(label); 
     label.BringToFront(); 
    } 
    //Will remove the label if you click on it. 
    void label_Click(object sender, EventArgs e) 
    { 
     ((Label)sender).Click -= new EventHandler(label_Click); 
     ((Label)sender).Dispose(); 
    } 

鹽漬的標籤朝前把底部的新的。

+0

是的,我想在列表底部添加它們,頂部有空白,有點像垂直對齊列表框的底部。 – Joeri

+0

FlowControlPanel和FlowDirection = BottomUp修復了我的問題。 – ErTR

0

我想我明白你想要做什麼,我知道的唯一方法是通過用空項目預填充第二個列表/ datagridview來僞造它,以便用戶看不到任何東西。然後,當你的用戶從你的第一個盒子中選擇你將用最新的真實物品替換最底部最空的物品。

+0

我曾希望避免這種情況,但如果沒有其他方法,我想我會被迫這樣做。謝謝 – Joeri

0

試試我的代碼。我正在使用C#3.5

private void listBox1_DoubleClick(object sender, EventArgs e) 
    { 
     if (listBox1.SelectedItem != null) 
     { 
      int index = listBox2.Items.Count>0?listBox2.Items.Count:0; 
      listBox2.Items.Insert(index, listBox1.SelectedItem); 
      listBox1.Items.Remove(listBox1.SelectedItem); 
     } 
    } 
相關問題