Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在面板中拖放后,如何保存TableLayoutPanel的新位置?_C#_.net_Winforms_C# 4.0_Drag And Drop - Fatal编程技术网

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

C# 在面板中拖放后,如何保存TableLayoutPanel的新位置?,c#,.net,winforms,c#-4.0,drag-and-drop,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; pan

我正在使用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);
}

我找到了解决问题的办法。其思想是将项目的位置保存在数据库中(location.xa,d location.Y),然后在加载页面中,我们用保存在数据库中的位置修复删除项目的位置