鼠标移动事件,没有像样的例子
本文关键字:移动 事件 鼠标 | 更新日期: 2023-09-27 18:27:42
我无法理解这一点,关于如何为鼠标移动事件设置事件侦听器,没有合适的例子。
我可以找到这样或这样的参考资料,但这并没有真正的帮助。。。
我怎么能做这样的事情:
public event MouseEventHandler(object sender, MouseEventArgs e)
{
//Manage mouse move event
//Get X, Y position of mouse ect...
}
编辑:
我有两个错误:
静态只读字段不能分配给(静态中除外构造函数或变量初始化器)
运算符"+="不能应用于"RoutedEvent"类型的操作数,并且"方法组"
这些错误出现在以下行:Mouse.MouseMoveEvent += mouseEventHandler
。
public MainWindow()
{
InitializeComponent();
Mouse.MouseMoveEvent += mouseEventHandler;
}
public void mouseEventHandler(object sender, MouseEventArgs e)
{
Point mousePosition = e.GetPosition(this);
}
只需将事件处理程序附加到任何UIElement
的MouseMove
事件。
例如,您可以将它添加到代码后面的Window
中,如下所示:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.MouseMove += Window_MouseMove;
}
private void Window_MouseMove(object sender, MouseEventArgs e)
{
Console.WriteLine("Mouse moved");
}
}
在代码背后的C#中附加事件处理程序的另一种选择是使用XAML设置它,例如,对于上面的窗口,它可以是这样的:
<Window …
MouseMove="Window_MouseMove">
请注意,您仍然需要在代码后面声明Window_MouseMove
方法。
编辑:
如果你正在使用Forms,你可能想使用:
https://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousemove(v=vs.110).aspx
类似:
System.Windows.Forms.MouseMove += MouseEventHandler
请记住,您需要一个Forms实例,并直接使用它,如:
this.MouseMove += MouseEventHandler
由于构造函数中有InitializeComponent()函数,我猜您正在使用visual studio 中的设计器使用Winforms
除了其他人给出的正确答案外,我想向你指出,在视觉工作室订阅活动对设计师来说真的很容易。
设计器是绘制表单、添加所有按钮、文本框等的部分。
要为鼠标移动(或表单中任何组件可能引发的任何事件)添加事件处理程序,请执行以下操作:
- 选择应该对移动做出反应的组件,例如按钮或您正在设计的窗体
- 转到该组件的属性窗口(如何做到这一点有很多可能性,其中之一是通过菜单视图-属性
- 在属性窗口中,您可以看到一个闪电标志。如果您单击它,您将看到组件可以生成的大多数事件的列表
- 其中一个事件是鼠标移动。键入函数名称,或双击事件以生成默认名称
- 使用所有正确的参数生成事件处理程序,并显示事件处理程序的代码