在c#winforms中使用Mouse Left和Right按钮

时间:2015-10-09 19:35:12

标签: c# winforms button mouse

此功能仅识别鼠标的左键。如何让这个程序识别鼠标右键,以便用鼠标右键单击此按钮?

 private void button2_Click(object sender, EventArgs e)
        {
            MouseEventArgs me = (MouseEventArgs)e;
            if (buttonwasclicked==false)
            {
                DrawLinesOnBitmap(button2.BackgroundImage);
                button2.BackgroundImage= ToGrayscale(button2.BackgroundImage);
                buttonwasclicked = true;
            }

            else {
                button2.BackgroundImageLayout = ImageLayout.Stretch; 
                button2.BackgroundImage = Image.FromFile("C:\\Users\\rati\\Desktop\\ks.png");
                buttonwasclicked = false;
            }
            if (me.Button == MouseButtons.Left)
            {
                mysum += md;
                if (buttonwasclicked == true) md *= -1; else md *= -1;
                label1.Text = mysum.ToString();
            }
            if (me.Button == MouseButtons.Right) {
                enemysum += ed;
                if (buttonwasclicked == true) ed *= -1; else ed *= -1;
                label2.Text = enemysum.ToString();
            }
        }

3 个答案:

答案 0 :(得分:0)

使用" MouseClick"事件而不是" Click"事件,"点击"没有识别鼠标的右键单击。

如果您正在使用Visual Studio,只需转到设计器,单击按钮,转到属性,然后单击闪电图标。然后你找到" MouseClick"然后双击它。

答案 1 :(得分:0)

您应该使用MouseDown事件。它具有MouseEventArgs参数,其中包含Button属性。所以你可以检查按钮是否已关闭。

答案 2 :(得分:0)

您需要同时使用MouseDownMouseUp操作来解释点击。

您的行动清单应与以下内容类似:

Control Properties

然后按如下方式解释行动:

int prevMouseX;
int prevMouseY;

private void mouseDown(object sender, MouseEventArgs e)
{
    prevMouseX = e.X;
    prevMouseY = e.Y;
}

private void mouseUp(object sender, MouseEventArgs e)
{
    if (prevMouseX == e.X && prevMouseY == e.Y)
        mouseClick(sender, e);
}

private void mouseClick(object sender, MouseEventArgs e)
{
    //Do Stuff
}

这应该适合你!

我的代码解释了当鼠标在同一位置向下和向上移动时的点击。