3

我想要做的是让我的winform在我点击我的winform时显示一个调试行。但是,当我这样做时,什么也没有发生。我知道如何让按钮/其他点击事件发生。但我需要的是能够点击我的winform中的任何地方。

在过去的一个小时里,我用谷歌搜索了这个,但看不到我做错了什么。据我所知,这段代码在检测鼠标点击时应该是正确的。此方法与 form1.cs 类一起保存:

private void mouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
        Trace.WriteLine("Mouse clicked");
}

我试过设置刹车点,但也没有触发。我做错了什么?

很抱歉这个愚蠢的新手问题,但我对winform编程很陌生。

4

4 回答 4

9

使用 Visual Studio 内置的编辑器:

在此处输入图像描述

  1. 转到属性窗口(如果看不到,请按Alt + Enter)。
  2. 选择事件图标(看起来像闪电)。
  3. 双击Click右侧的空 ComboBox 。
  4. 您将被带到一个空方法,您可以在其中放置代码。
于 2013-02-01T11:30:48.973 回答
9

如何添加事件处理程序:

public Form1()
{
    InitializeComponent();
    // This line should you place in the InitializeComponent() method.
    this.MouseClick += mouseClick;
}
于 2013-02-01T11:27:46.620 回答
4

方法本身是正确的。我认为您的实际问题是:您尚未将此方法添加到MouseClick事件中。

在 C#(以及大多数其他语言)中,事件由事件处理程序处理。Windows 窗体和控件包含控件中发生的所有事件的事件,例如OnClickOnResize。您可以将方法附加到这些事件,当实际事件发生时,这些方法将自动被调用。只需将以下行添加到表单的构造函数、Form_Load-method、InitializeComponent-method 等:

this.MouseClick += mouseClick;

现在,当MouseClick事件发生时,您的方法mouseClick将被自动调用。

于 2013-02-01T11:30:18.557 回答
3

我建议阅读 Events C# Programming Guide。您需要像这样添加一个事件处理程序:

form1.MouseClick += mouseClick;
于 2013-02-01T11:29:56.783 回答