【问题标题】:Detecting a left button mouse click Winform检测鼠标左键单击 Winform
【发布时间】:2013-02-01 11:23:57
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 必须触发mouseClick() 方法。您是否设置了表单的OnClick 事件?
  • 你显示了当鼠标点击发生时你想要调用的方法,但是你真的添加了一个事件处理程序来调用这个方法吗?
  • 该死的。不,我没有。我该怎么做?
  • 只需双击表单,它就会为您创建鼠标点击处理程序,
  • @Hafeez,双击表单会为您创建一个 Form_Load 处理程序,而不是鼠标单击处理程序。

标签: c# winforms


【解决方案1】:

如何添加EventHandler:

public Form1()
{
    InitializeComponent();
    // This line should you place in the InitializeComponent() method.
    this.MouseClick += mouseClick;
}

【讨论】:

    【解决方案2】:

    使用 Visual Studio 内置的编辑器:

    1. 转到属性窗口(如果没有看到,请按Alt + Enter)。
    2. 选择事件图标(看起来像闪电)。
    3. 双击单击右侧的空组合框。
    4. 您将被带到一个空方法,您可以在其中放置您的代码。

    【讨论】:

      【解决方案3】:

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

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

      this.MouseClick += mouseClick;
      

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

      【讨论】:

        【解决方案4】:

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

        form1.MouseClick += mouseClick;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-18
          • 1970-01-01
          • 2011-04-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多