Visual C# Form right click button

2019-01-27 14:30发布

I am trying to make a minesweeper type game in visual c# and I want to have different things happen when I right click and left click a button, how do I do this?

I have tried this code but it only registers left clicks:

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

    }

3条回答
虎瘦雄心在
2楼-- · 2019-01-27 14:34

Just try with button1_MouseDown event instead of button1_MouseClick Event.It will solve your problem.

 private void button1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
          //do something
        }
        if (e.Button == MouseButtons.Right)
        {
          //do something
        }
    }
查看更多
三岁会撩人
3楼-- · 2019-01-27 14:44

You will have to use the MouseUp or MouseDown event instead of the Click event to capture right click.

查看更多
该账号已被封号
4楼-- · 2019-01-27 14:49

Button is reacting only for MouseButtons.Left not for MouseButton.Right and not even for middle.

void Select(object sender, MouseEventArgs e)
{
    /* var btn = sender as CardButton;*/

    if (e.Button == MouseButtons.Left)
    {
        if (this.Selected == false)
        { 
            this.Selected = true;
        }
        else
        {
            this.Selected = false;
        }
    }
    if (e.Button == MouseButtons.Right)
    {
        if (this.Selected == false)
        {
            this.Selected = true;
        }
        else
        {
            this.Selected = false;
        }
    }

    Draw();
}
查看更多
登录 后发表回答