Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.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# 当鼠标悬停在其他对象上时,对象停止跟踪鼠标位置#_C#_Button_Mouseevent - Fatal编程技术网

C# 当鼠标悬停在其他对象上时,对象停止跟踪鼠标位置#

C# 当鼠标悬停在其他对象上时,对象停止跟踪鼠标位置#,c#,button,mouseevent,C#,Button,Mouseevent,我有一个程序,它使用鼠标的.X位置(相对于窗体边界)来更改按钮对象的.Left值 问题是,我把这个按钮放在其他对象的顶部,比如图片框、按钮、轨迹栏等。当我跳过这些其他元素时,这个按钮就会停止跟踪鼠标的.X位置 无论鼠标在窗体上执行其他操作,如何使按钮跟踪鼠标移动?(我还需要同时与其他元素交互) 我的代码: 提前感谢各位:-)这对我很有用。尝试使用MousePosition.X。它的行为是一样的吗?不,它更糟。。。当鼠标悬停在其他按钮上时,这仍然不起作用!??可能值得注意的是,按钮在面板中(但Pi

我有一个程序,它使用鼠标的.X位置(相对于窗体边界)来更改按钮对象的.Left值

问题是,我把这个按钮放在其他对象的顶部,比如图片框、按钮、轨迹栏等。当我跳过这些其他元素时,这个按钮就会停止跟踪鼠标的.X位置

无论鼠标在窗体上执行其他操作,如何使按钮跟踪鼠标移动?(我还需要同时与其他元素交互)

我的代码:
提前感谢各位:-)

这对我很有用。尝试使用MousePosition.X。它的行为是一样的吗?不,它更糟。。。当鼠标悬停在其他按钮上时,这仍然不起作用!??可能值得注意的是,按钮在面板中(但Picturebox不是),您必须将窗体上每个控件的所有MouseMove()事件连接到同一个例程,以便它按照您所设想的方式工作。当其他控件(表单除外)触发事件时,X和Y值将与该控件相关。您可以忽略这些值,只需使用表单的PointToClient()函数将当前光标位置转换为表单坐标。如果这是WinForms,那么另一种方法是实现IMessageFilter并以这种方式跟踪鼠标移动。这将为鼠标移动提供一个全局钩子(仅适用于您的应用程序)。
/* i create the mousemove tracking event */    
this.MouseMove += new MouseEventHandler(btnBat1_MouseMove);

/* and use it by making a new method */
public void btnBat1_MouseMove(Object sender, MouseEventArgs e)
{
  // I use the variable mouseXCo to change the button1.Left value.
  mouseXCo = e.X;
}