【问题标题】:How can I save definitely the new location of a TableLayoutPanel after a drag and drop in a panel?在面板中拖放后,如何明确保存 TableLayoutPanel 的新位置?
【发布时间】:2015-05-15 13:20:03
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    我找到了解决问题的方法。想法是将项目的位置保存在数据库中(Location.X a,d Location.Y),然后在加载页面中,我们使用保存在数据库中的位置来修复拖放项目的位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多