如何在面板中拖放后,如何保存TableLayoutPanel的新位置?

时间:2015-05-15 13:20:04

标签: c# .net winforms c#-4.0 drag-and-drop

我正在使用winforms / c#尝试拖放面板中的tablelayoutpanel,tablelayoutpanel的拖放工作成功但是如何使用按钮操作保存tablelayoutpanel的新位置?有什么解决方案吗?

private void Registration_Load(object sender, EventArgs e)
{   
     panel2.AllowDrop = true;
     tableLayoutPanel1.AllowDrop = true;
     panel2.DragEnter += panel2_DragEnter;   
     panel2.DragDrop += panel2_DragDrop;
     tableLayoutPanel1.MouseDown += tableLayoutPanel1_MouseDown;
}   

private void panel2_DragEnter(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(typeof(TableLayoutPanel))) e.Effect = DragDropEffects.Move;

}

private void panel2_DragDrop(object sender, DragEventArgs e)
{
     var tlp = (TableLayoutPanel)e.Data.GetData(typeof(TableLayoutPanel));
    tlp.Location = panel2.PointToClient(new Point(e.X, e.Y));
    tlp.Parent = panel2;
    tlp.BringToFront();             
}
private void tableLayoutPanel1_MouseDown(object sender, MouseEventArgs e)
{
     tableLayoutPanel1.DoDragDrop(tableLayoutPanel1, DragDropEffects.Move);
}

1 个答案:

答案 0 :(得分:-1)

我找到了解决问题的方法。我们的想法是保存数据库中的项目位置(Location.X a,d Location.Y),然后在加载页面中我们修复已删除项目的位置以及保存在数据库中的位置。