禁用Win窗体应用程序中的右键单击功能

3

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

Button.click += SomeMethod

在左右点击时都会执行someMethod方法。我希望只在左键点击时执行此操作。

4个回答

3

你不能处理事件中哪个按钮被点击了吗?

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

1
你可以检查按钮并调用本机onClick以处理左键单击的情况。
[pseudo code]
SomeMethod(e){
  if (e.Button == left){
    control.onClick(e);
  }
}

1

你可以有多种方式实现这个功能:

1)如果你想使用按钮的点击事件,可以使用下面的代码:

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 属性,因此您必须手动检查它们。

1
你可以在事件处理程序中检测到哪个鼠标按钮被点击了。
检查处理程序的 MouseEventArgs e 参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接