C# 检测控件是否在picturebox内移动

C# 检测控件是否在picturebox内移动,c#,.net,winforms,system.drawing,C#,.net,Winforms,System.drawing,我已将自定义控件添加到picturebox。我需要检查该控件是否已移动。 目前我使用pictureboxmousemove事件,这显然有一些问题。 我也尝试将mousemouse事件添加到控件中。它似乎不起作用。如何对该问题进行排序 pictureBox5.Controls.Clear(); var c = new FrameControl(); c.Size = obj.Size; c.Location = obj.Location; pictureBox5.Controls.Add

我已将自定义控件添加到picturebox。我需要检查该控件是否已移动。 目前我使用pictureboxmousemove事件,这显然有一些问题。 我也尝试将
mousemouse
事件添加到控件中。它似乎不起作用。如何对该问题进行排序

 pictureBox5.Controls.Clear();
 var c = new FrameControl();
 c.Size = obj.Size;
 c.Location = obj.Location;
 pictureBox5.Controls.Add(c);     
更新: 我已尝试覆盖Frame控件的
mousemove
事件,但似乎不起作用

protected override void OnMouseMove(MouseEventArgs e)
  {
 base.OnMouseMove(e);
//Debugger does not hit breakpoint
  }

将鼠标悬停在控件上时,将调用
MouseMove
事件。如果要检查控件是否已移动,请使用
LocationChanged
事件。

将鼠标悬停在控件上时,将调用
MouseMove
事件。如果要检查控件是否已移动,请使用
LocationChanged
事件。

“…它似乎不起作用…”-此信息没有真正的帮助。它没有说明什么东西不起作用,例如,您是否在任何地方收到任何错误消息,您是否尝试调试该问题以确保它确实起到预期的作用。是什么使控件移动?默认情况下,它不会移动,因此您的代码允许并使它移动。从那里调度一个事件怎么样?@JohnB请看update.OnMouseMove在鼠标指针在控件边界内移动时被触发。这允许通过使用相对
e.Location
值更新控件的位置来移动控件。由于此控件移动受容器边界的约束,因此可以使用(已在别处提到:)计算移动。自定义控件应该更新并存储其新位置,以便主过程可以在需要时检索此引用。@ZorgoZ这是我使用的控件“…它似乎不起作用…”-此信息没有真正的帮助。它没有说明什么东西不起作用,例如,您是否在任何地方收到任何错误消息,您是否尝试调试该问题以确保它确实起到预期的作用。是什么使控件移动?默认情况下,它不会移动,因此您的代码允许并使它移动。从那里调度一个事件怎么样?@JohnB请看update.OnMouseMove在鼠标指针在控件边界内移动时被触发。这允许通过使用相对
e.Location
值更新控件的位置来移动控件。由于此控件移动受容器边界的约束,因此可以使用(已在别处提到:)计算移动。您的自定义控件应该更新并存储其新位置,以便主过程可以在需要时检索此引用。@ZorgoZ这是我使用的控件,您也可以依赖
Move
event。谢谢<代码>位置更改了自定义控件的,对吗?是。您可以覆盖自定义控件的“LocationChanged”事件。您也可以依靠
Move
event。谢谢<代码>位置更改了自定义控件的,对吗?是。您可以覆盖自定义控件的“LocationChanged”事件。