繁体   English   中英

是否可以将项目拖放到列表框中的特定位置?

[英]Is it possible to drag and drop an item into a specific position in a listbox?

我在 Windows 窗体中有三个列表框。 第一个将保持不变。 我想将项目从第三个拖放到第二个,以便将其与第一个的特定元素相匹配。 例如,第一个列表框有 10 个元素,第二个是空的,第三个有 10 个元素。 我想将第三个列表框的第二个元素拖到第二个列表框的第五个位置(这是空的),因此它与第一个列表框的第五个元素匹配。 那讲得通? 可以做到吗? 如何? (不是要求完整代码,只是想知道是否可能,并且可能是一些关于如何做的提示)

谢谢!

好吧,我不知道这是否是最好的方法,但它确实有效。 我修改了一个代码,用于通过拖放重新排序列表框。

  private void LstBox3_MouseDown(object sender, MouseEventArgs e)
    {

        if (lstBox3.SelectedItem == null) return;
        lstBox2.DoDragDrop(lstBox3.SelectedItem, DragDropEffects.All);
    }





    private void LstBox2_DragDrop(object sender, DragEventArgs e)
    {

        Point point = lstBox2.PointToClient(new Point(e.X, e.Y));
        int index = lstBox2.IndexFromPoint(point);
        if (index < 0) index = lstBox2.Items.Count - 1;            
        object data1 = lstBox3.SelectedItem;
        lstBox2.Items.RemoveAt(index);
        lstBox2.Items.Insert(index, data1);


    }



    private void LstBox2_DragOver(object sender, DragEventArgs e)
    {
        e.Effect = DragDropEffects.All;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM