在Win窗体应用中禁用右键单击

时间:2013-06-04 07:02:51

标签: c# .net

我正在制作一个Windows窗体应用程序 我在该应用程序中添加了一个用户控件 有没有办法禁用右键单击事件。 因为如果我使用

Button.click += SomeMethod

如果同时点击(左右),它会转到someMethod。 我只想在左键单击时执行此操作。

4 个答案:

答案 0 :(得分:3)

您无法处理事件内部点击的按钮吗?

private void uc_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
         //more logic here
    }
}

答案 1 :(得分:1)

您可以检测在事件处理程序中单击了哪个鼠标按钮。

检查处理程序的MouseEventArgs e参数

答案 2 :(得分:1)

您可以检查按钮并调用本机onClick以查看左键单击的情况。

[伪代码]

SomeMethod(e){
  if (e.Button == left){
    control.onClick(e);
  }
}

答案 3 :(得分:1)

你可以采取多种方式;

1)如果您想使用button.click事件,请执行以下代码:

Button.Click += SomeMethod;
private void SomeMethod(object sender, EventArgs e)
{
    System.Windows.Forms.Button bt = sender as System.Windows.Forms.Button;

     if (bt != null)
     {
        if (bt.Equals(System.Windows.Forms.MouseButtons.Left))
        {
                // do something;
         }
     }
}

2)或者在windows窗体中使用鼠标点击事件“button.MouseClick”。

   Button.MouseClick += SomeMethod;
   private void SomeMethod(object sender, MouseEventArgs e)
   {
        if (!e.Button.Equals(System.Windows.Forms.MouseButtons.Right))
        {
            // do work
        }
   }

我希望我们可以使用e.Handled = true,但在这种情况下,事件参数都没有Handled属性,因此你必须手动检查它们。