How to drag Multi items between 2 listbox in C#?

為{幸葍}努か 提交于 2019-12-12 01:27:47

问题


I can drag one item from listbox1 and drop it to listbox2 but how can i do it when i select multi items from listbox1?

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

    }

回答1:


You can simply copy set the entire SelectedItems property as the drag/drop data:

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


来源:https://stackoverflow.com/questions/30311930/how-to-drag-multi-items-between-2-listbox-in-c

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!