如何在 C# 中的 2 个列表框之间拖动多个项目?
How to drag Multi items between 2 listbox in C#?
我可以将列表框中的一项拖放到列表框 2 中,但是当我从列表框 1 中 select 多个项目时我该怎么做?
private void FrmCh3_Load(object sender, EventArgs e)
{
listBox2.AllowDrop = true;
}
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.Copy);
}
private void listBox2_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
private void listBox2_DragDrop(object sender, DragEventArgs e)
{
listBox2.Items.Add(e.Data.GetData(DataFormats.Text));
}
您可以简单地将整个 SelectedItems
属性 复制设置为 drag/drop 数据:
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
listBox1.DoDragDrop(listBox1.SelectedItems, DragDropEffects.Copy);
}
private void listBox2_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetData(typeof (ListBox.SelectedObjectCollection)) != null)
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void listBox2_DragDrop(object sender, DragEventArgs e)
{
var items = (ListBox.SelectedObjectCollection)e.Data.GetData(typeof (ListBox.SelectedObjectCollection));
foreach (var item in items)
{
listBox2.Items.Add(item);
}
}
我可以将列表框中的一项拖放到列表框 2 中,但是当我从列表框 1 中 select 多个项目时我该怎么做?
private void FrmCh3_Load(object sender, EventArgs e)
{
listBox2.AllowDrop = true;
}
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.Copy);
}
private void listBox2_DragEnter(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Copy;
}
private void listBox2_DragDrop(object sender, DragEventArgs e)
{
listBox2.Items.Add(e.Data.GetData(DataFormats.Text));
}
您可以简单地将整个 SelectedItems
属性 复制设置为 drag/drop 数据:
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
listBox1.DoDragDrop(listBox1.SelectedItems, DragDropEffects.Copy);
}
private void listBox2_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetData(typeof (ListBox.SelectedObjectCollection)) != null)
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void listBox2_DragDrop(object sender, DragEventArgs e)
{
var items = (ListBox.SelectedObjectCollection)e.Data.GetData(typeof (ListBox.SelectedObjectCollection));
foreach (var item in items)
{
listBox2.Items.Add(item);
}
}