如何在windows窗体中使用c#将标签拖放到新位置并将该位置设置为标签的新位置
使用我的代码,我可以拖放到新位置,但当我关闭windows窗体时,该位置将再次重置为旧位置。我希望标签在拖放后处于新位置,即使我关闭窗体或停止调试(停止执行) 标签名称:label1 代码: 名称空间EINS_FloorMap {如何在windows窗体中使用c#将标签拖放到新位置并将该位置设置为标签的新位置,c#,asp.net,.net,forms,winforms,C#,Asp.net,.net,Forms,Winforms,使用我的代码,我可以拖放到新位置,但当我关闭windows窗体时,该位置将再次重置为旧位置。我希望标签在拖放后处于新位置,即使我关闭窗体或停止调试(停止执行) 标签名称:label1 代码: 名称空间EINS_FloorMap { 应用于标签的Location属性。设置会自动更新和保存。--asp.net标记在此处的用法不清楚。--顺便说一句,您可以删除IsMouseDown,只需在MouseMove中检查e.Button==MouseButtons.Left,就像在MouseDown中一样。然
应用于标签的
Location
属性。设置会自动更新和保存。--asp.net标记在此处的用法不清楚。--顺便说一句,您可以删除IsMouseDown
,只需在MouseMove中检查e.Button==MouseButtons.Left
,就像在MouseDown中一样。然后也删除MouseUp处理程序(这真的没用)。--给定事件处理程序的名称,您可能有多个处理程序,因此请检查。这是label1的Location属性:this.label1.Location=new System.Drawing.Point(13,97);使用我的代码,我可以拖放到新位置,但当我关闭windows窗体时,label1的位置将再次重置为旧位置。拖放后,我希望标签位于新位置,即使我关闭窗体或停止调试(停止执行)这就是为什么我建议采用那篇文章中所示的解决方案。这就是自动存储和恢复属性值的方法。请使用示例进行说明。整个过程在中进行了说明,并附有图片。
public partial class EINS_FloorMap : Form
{
clsConnection_DAL objCore = new clsConnection_DAL(true, true);
private System.Drawing.Point StartPoint;
private bool IsMouseDown = false;
public EINS_FloorMap()
{
InitializeComponent();
}
private void label1_MouseDown_1(object sender,
System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
IsMouseDown = true;
label1.BringToFront();
StartPoint = e.Location;
}
}
private void label1_MouseUp_1(object sender, System.Windows.Forms.MouseEventArgs e)
{
IsMouseDown = false;
this.label1.Location = new System.Drawing.Point(
this.label1.Location.X,this.label1.Location.Y
);
}
private void label1_MouseMove_1(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (IsMouseDown)
{
label1.Left = e.X + label1.Left - StartPoint.X;
label1.Top = e.Y + label1.Top - StartPoint.Y;
}
}
}
}