Visual C#窗体右键单击按钮

本文关键字:单击 按钮 右键 窗体 Visual | 更新日期: 2023-09-27 18:26:00

我正试图在visual c#中制作一款扫雷舰类型的游戏,我想在右键和左键单击按钮时发生不同的事情,我该如何做到这一点?

我试过这个代码,但它只记录左键点击:

    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");
        }
    }

Visual C#窗体右键单击按钮

您必须使用MouseUpMouseDown事件而不是Click事件来捕获右键单击。

只需尝试使用button1_MouseDown事件而不是button1_MouseClick事件。它将解决您的问题。

 private void button1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
          //do something
        }
        if (e.Button == MouseButtons.Right)
        {
          //do something
        }
    }

按钮只对MouseButtons.Left做出反应,对MouseButton.Right没有反应,甚至对中间也没有反应。

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();
}