我正在制作一个Windows窗体应用程序 我在该应用程序中添加了一个用户控件 有没有办法禁用右键单击事件。 因为如果我使用
Button.click += SomeMethod
如果同时点击(左右),它会转到someMethod。 我只想在左键单击时执行此操作。
答案 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属性,因此你必须手动检查它们。