2

所以我有一个流程面板和一个在运行时向其添加列表视图的按钮。我设置了双击事件 - 是否可以设置某种单击(或单击并拖动)事件来重新排列流面板中的控件?

我知道我们可以更改排序策略(自上而下,从左到右)并换行,但我希望组织用户可以简单地将控件从一个位置拖动并重新定位到其他位置。

private void addNewWOButton_Click(object sender, EventArgs e)
        {
            ListView newListView = new ListView();
            newListView.AllowDrop = true;
            newListView.DragDrop += listView_DragDrop;
            newListView.DragEnter += listView_DragEnter;
            newListView.DoubleClick += listView_DoubleClick;

            flowPanel.Controls.Add(newListView);
}
4

1 回答 1

3

这会将一个控件移动到面板的顶部,并将剩余的控件向下移动。

            FlowLayoutPanel1.Controls.SetChildIndex(myControl, 0);

对于拖放重新排序,您必须为每个控件连接拖放事件。在 drop 事件上获取被拖动的控件和目标控件的索引位置。然后使用 SetChildIndex 更改索引。如果你还在解决这个问题,我可以挖掘一些代码给你看。

于 2013-07-12T04:01:19.510 回答