在列表视图中从下往上添加项目
本文关键字:添加 项目 列表 视图 | 更新日期: 2023-09-27 18:16:28
我目前有两个列表我正在工作。一个装满了物品,另一个是空的。当用户双击填充列表中的一个项目时,它应该将该项目添加到空/第二个列表中,但不是将其添加到列表的顶部,而是将新添加的项目添加到底部。所以这些项目应该从下往上加。我正在使用datagridview,但我愿意使用listview/listbox,只要它能完成工作。
我在一个windows窗体中添加了两个列表框。listBox1和listBox2我在第一个列表框中添加了Seven Items {One,Two,Three…}我在
中添加了双击事件处理程序 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();
}
把标签放在前面,把新标签放在下面。
我想我明白你想做什么,我知道的唯一方法是通过预填充你的第二个列表/datagridview与空项目,所以用户看不到任何东西。然后,当用户从第一个框中进行选择时,将最底部的空项替换为新的实际项。
试试我的代码。我用的是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);
}
}