在类中返回鼠标单击事件而不是表单

时间:2011-12-30 14:14:21

标签: c# gdi+ gdi

过去2个小时我一直在谷歌上试图找到一种方法来回复我点击鼠标左键的事实。

我怎么也找不到任何可以帮助我的东西,所有被问过类似事情的人都在使用Forms。然而,这对我没有帮助,因为我试图在课堂上获得它。

以下是代码:

 private void MenuClick()
        {
            if (mousePosition.X >= 250 && mousePosition.X <= 500 && mousePosition.Y >= 100 && mousePosition.Y <= 150)
            {
                MessageBox.Show("Mouse Clicked");
            }
    }

我尝试过MouseButtons.left = True。但它一直告诉我,它的左侧应该始终是一个属性,变量或索引器。最后我检查Bool是一个变量......

对此有何帮助?

(Ps。目前的代码我的作品。它只适用于鼠标悬停而不是点击时。)

1 个答案:

答案 0 :(得分:3)

...should always be a property, variable or indexer...很可能意味着您使用的是赋值运算符=而不是比较运算符==。此外,MouseButtons是枚举,而不是布尔值,因此您应该执行以下操作:

e.Button == MouseButtons.Left

请记住,除非您在e中捕获通过鼠标状态的事件内的点击事件,否则e.Button将不可用。例如,如果您在表单上捕获MouseDown事件,则可以按以下方式处理它:

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
        MessageBox.Show("Left Clicked.");
    }
    else if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {
        MessageBox.Show("Right Clicked.");
    }
}