在表单上注册MouseDown和MouseMove事件

3

我应该在哪里注册表单的鼠标事件?当我双击表单时,它会生成Form_Load事件,然后我可以在其中添加代码。但是,如果我想要捕捉鼠标事件,例如单击或双击,该怎么办呢?

private void Form1_MouseDown(object sender, MouseEventArgs e{

Console.WriteLine("mouse down")

}

然而,当我在表单上进行mousedown事件时,控制台上没有任何输出。我知道在注册表单事件或类似的地方缺少某些东西。有什么想法吗?
谢谢。
5个回答

4
在设计视图中,选择表单,然后在属性窗口中单击小闪电符号(事件)。
在这里,您可以选择为哪个事件调用哪个委托方法。如果您还没有创建该方法,只需双击事件旁边的空白区域即可为您生成代码。

1

如果您正在使用VS.net,则应在属性面板中找到所有事件。只需选择您想要的事件即可。

如果您想要语法上注册一个事件,那么代码看起来应该是这样的:

Form1.Click += new MouseEventHandler(Form1_MouseDown);

为了注销它的

Form1.Click -= new MouseEventHandler(Form1_MouseDown);

1

事件需要从设计师或代码中进行“连接”。您可以通过在属性窗口中双击事件来从Visual Studio中进行事件的连接:

enter image description here

这将在自动生成的.designer文件中生成类似以下代码的代码

theForm.MouseDown += new MouseEventHandler(Form1_MouseDown);

您也可以使用上述代码在您的Form_Load方法中手动连接事件。


0

通过您的解释,似乎您已通过设计师正确注册了事件...如果您仍然无法在控制台上看到字符串,请尝试使用System.Diagnostics.Debug.WriteLine(也许您正在查看错误的窗口)


0

使用WinForms,您需要在Visual Studio的设计视图中添加它。

在设计视图中,选择您的窗体。然后,在属性面板中点击“事件”按钮(看起来像闪电)并在适当的事件下输入函数名。您也可以在此处单击事件以自动生成新的代码-behind中的函数。

正如您注意到的那样,双击窗体将自动在代码-behind中生成某个特定的函数。对于窗体,它是Load,但对于其他东西,它可能是MouseDown或其他事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接